반응형
문제 링크 : https://www.acmicpc.net/problem/2661
2661번: 좋은수열
첫 번째 줄에 1, 2, 3으로만 이루어져 있는 길이가 N인 좋은 수열들 중에서 가장 작은 수를 나타내는 수열만 출력한다. 수열을 이루는 1, 2, 3들 사이에는 빈칸을 두지 않는다.
www.acmicpc.net
> 풀이
함수 재귀호출로 비교해줍시다
#include <cstdio>
#include <algorithm>
using namespace std;
int N, arr[80];
void algo(int cnt) {
for (int i = 1; i <= cnt / 2; i++) {
if (equal(arr + cnt - i, arr + cnt, arr + cnt - i * 2))
return;
}
if (cnt == N) {
for (int i = 0; i < N; i++) printf("%d", arr[i]);
exit(0);
}
for (int i = 1; i <= 3; i++) {
arr[cnt] = i;
algo(cnt + 1);
}
}
int main() {
scanf("%d", &N);
algo(0);
return 0;
}
(개발 환경 : vs code)
반응형
'알고리즘 (백준) > BOJ 길라잡이 (1)' 카테고리의 다른 글
백준 2485 (가로수) / C++ (0) | 2020.07.17 |
---|---|
백준 2580 (스도쿠) / C++ (0) | 2020.07.16 |
백준 15686 (치킨 배달) / C++ (0) | 2020.07.13 |
백준 14889 (스타트와 링크) / C++ (0) | 2020.07.13 |
백준 6603 (로또) / C++ (0) | 2020.07.11 |