[BOJ/백준/C++] 15649번
·
Coding Test/Baekjoon
15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 📌 접근 방법 백트래킹 원리를 사용했다 ✔️ 백트래킹 가능한 모든 해를 조사하면서 최적의 해를 찾는 기법 재귀적인 방법으로 구현 해를 찾기 위해 후보해를 조사하고, 조건을 만족하지 않으면 이전 상태로 돌아가 다른 후보를 조사하는 과정을 반복함 ✔️ 깊이 우선 탐색 (Depth-First Search, DFS) 그래프의 모든 정점을 탐색하는 기법 스택(Stack) 또는 재귀 함수를 통해 구현가능 시작 정점을 선택하고 해당 정점을 방문했음을 표시함 선택한 정점과 인..
[BOJ/백준/C++] 11729번 하노이 탑 이동 순서
·
Coding Test/Baekjoon
11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 📌 접근 방법 ✔️ 하노이 탑쌓기 문제 n개의 원판을 첫번째 막대에서 세번째 막대로 옮기는 방법 n-1개의 원판을 첫번째에서 두번째로, 마지막 원판을 첫번째에서 세번째로, n-1개의 원판을 두번째에서 세번째로 옮기는 것이다. mid : 막대 1, 2, 3번 중 from에서 to로 가는 길에 들리는 막대이므로 6-from-to를 해줌 ➡️ 재귀 함수 이용 ✅ Pass Code #include #include #include #include #includ..
[BOJ/백준/C++] 2447번 별 찍기 - 10
·
Coding Test/Baekjoon
2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 📌 접근 방법 😱 쉬워보였지만 매우매우 어려웠다 😅 N = 3일 경우 공백 (1, 1) N=9일 경우 공백 (1,1), (1,4), (1,7) (3,3), (3,4), (3,5) (4,1), (4,3), (4,4), (4,5), (4,7) (5,3), (5,4), (5,5) ➡️ 규칙 작은 공백은 (x%3==1)&&(y%3==1)의 조건을 만족할 때 공백이 생긴다는 것을 알 수 있었다. 큰 공백은 ((x/N)%3==1)&&((y/N)%..
[BOJ/백준/C++] 17103번 골드바흐 파티션
·
Coding Test/Baekjoon
17103번: 골드바흐 파티션 첫째 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 N은 짝수이고, 2 < N ≤ 1,000,000을 만족한다. www.acmicpc.net 📌 접근 방법 ✔ 에라토스테네스의 체(Sieve of Eratosthenes) 소수를 효율적으로 찾아내는 알고리즘 큰 범위의 소수를 빠르게 구할 수 있음 시간 복잡도 : O(n log log n) 참고 링크 동작과정 2부터 시작하여 소수인 숫자를 찾음 현재 소수인 숫자를 제외한 그의 배수들을 모두 제거함 다음으로 넘어가서 아직 제거되지 않은 가장 작은 숫자를 찾고, 해당 숫자를 소수로 간주함 위의 과정을 반복하여 소수를 찾아냄 ✅ Pass Code #include ..