2661 : 좋은 수열

풀이

재귀로 작은 숫자부터 들어가면서 문자를 비교해주면 된다.

코드

#include <bits/stdc++.h>
using namespace std;

int n, a[88];

void dfs(int cnt) {
	for (int i = 1; i <= cnt / 2; i++) {
		if (equal(a + cnt - i, a + cnt, a + cnt - i - i)) return;
	}

	if (cnt == n) {
		for (int i = 0; i < n; i++) printf("%d", a[i]);
		exit(0);
	}

	for (int i = 1; i <= 3; i++) {
		a[cnt] = i;
		dfs(cnt + 1);
	}
}

int main() {
	scanf("%d", &n);

	dfs(0);

	return 0;
}

아무말

백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이

wookje.kwon's profile image

wookje.kwon

2017-03-08 11:25

Read more posts by this author