[BOJ-Code] 1436 - 영화감독 숌

Posted by DHniyeo Blog on March 10, 2024

문제 링크

💡 브루트포스 알고리즘

Memory 1112KB Time 260ms Code Length 493B

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include<stdio.h>


int main() {


	int n;
	int result = 0;
	scanf("%d", &n);
	int cnt = 0;
	for (int i = 666; ; i++) {
		int tmp = i;
		int arr[1000] = {0};
		int k = 0;
		while (tmp / 10) {
			arr[k++] = tmp % 10;
			tmp = tmp / 10;
		}
		arr[k] = tmp;
		int flag = 0;
		for (int x = 0; x <= k-2; x++) {
			if (arr[x] == 6 && arr[x + 1] == 6 && arr[x + 2] == 6) {
				flag = 1;
				break;
			}
		}
		if (flag) cnt++;
		if (cnt == n) {
			result = i;
			break;
		}
	}
	printf("%d", result);
}

이 코드는 입력으로 정수 n을 받아들이고, n번째로 작은 ‘666’이 포함된 수를 찾아 출력하는 프로그램이다. 먼저, 무한 루프를 돌면서 i를 666부터 1씩 증가시키며 수를 확인한다. 각 수를 분해하여 각 자리 숫자를 배열에 저장하고, 연속된 세 개의 숫자가 6인지 확인한다. 만약 666이 포함된 수를 찾으면 cnt를 증가시키고, cnt가 n과 같아지면 해당 수를 결과로 저장하고 루프를 종료한다. 마지막으로 결과를 출력한다.