반응형

문제풀이:https://www.acmicpc.net/problem/1436

 

1436번: 영화감독 숌

666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워즈를 만들 때, 스타워즈 1, 스타워즈 2, 스타워즈 3, 스타워즈 4, 스타워즈 5, 스타워즈 6과 같이 이름을 지었고, 피터 잭슨은 반지의 제왕을 만들 때, 반지의 제왕 1, 반지의 제왕 2, 반지의 제왕 3과 같이 영화 제목을 지었다. 하지만 숌은 자신이 조

www.acmicpc.net

 

666을 포함하는 값의 위치를 탐색하는 탐색문제였습니다.

별 다른 알고리즘기법이 포함되지 않기 때문에 구현문제라고도 생각할 수 있습니다.

 

666부터 수를 탐색하면서 666을 포함하는지 확인해주고 카운트값을 1씩 올려주면 탐색하면 되는 문제였습니다.

시간초과를 조심해야 하는데,  해당 문제는 10000까지 밖에 되지 않기 때문에 풀이가 가능했습니다. 

 

 

정답코드입니다.

#include <iostream>
using namespace std;
int n = 0;
int arr_index = 0;
int val[15]; //자리수들을 저장할 배열 

int main() {
	cin >> n;

	for (int i = 666; arr_index != n; i++) {
		int num = i;
		int num_size = 0;
		bool jud = false;

		while (num) { // 10이면 2자리수 이런식 
			val[num_size] = num % 10;
			num /= 10;
			num_size++;	
		}
		num = i; // 다시 num은 i 
		for (int j = 0; j <= num_size - 3; j++) {
			if (val[j] == 6 && val[j + 1] == 6 && val[j + 2] == 6) {
				jud = true;
				break;
			}
		}
		if (jud == true)
			arr_index++;
		if (arr_index == n) {
			cout << i << '\n';
			return 0;
		}
	}
}
반응형

'알고리즘 > 기타' 카테고리의 다른 글

[백준] 11000-강의실 배정(C++)  (0) 2021.05.25
[백준] 1068-트리(C++)  (0) 2021.05.21
[백준] 3020-개똥벌레(C++)  (0) 2020.03.21
[백준] 14570-나무 위의 구슬(C++)  (0) 2020.03.13
[백준] 15953-상금 헌터  (0) 2020.02.01

+ Recent posts