본문 바로가기
개인 공부/코딩테스트

[C++] 백준 1436번 영화감독 숌 :: seoftware

by seowit 2020. 3. 26.

문제

https://www.acmicpc.net/problem/1436

 

1436번: 영화감독 숌

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

www.acmicpc.net

소스코드

#include <iostream>
using namespace std;

int main(void) {
	int N; cin >> N;
	int answer = 666;
	N--;
	while (N) {
		answer++;
		//answer에 666 들어가는지 확인
		int x = answer;
		while (x > 0) {
			if (x % 1000 == 666) {
				N--;
				break;
			}
			x /= 10;
		}
	}
	cout << answer << endl;
}

코드설명

666부터 1씩 증가시켜가며 그 숫자에 666이 들어가는지 확인한다.

1000으로 나눈 나머지가 666이 아니라면, 그 수(answer)를 10으로 나눈 후 다시 1000으로 나눠서 나머지가 666 인지 확인하는 방식이다. 

예를 들어, 106667 이라는 숫자가 있다. 이 숫자를 1000으로 나누면 나머지가 667 이고 이것은 666이 아니다. 그 다음에는 106667을 10으로 나눈 몫인 10666을 1000으로 나눠보자. 그러면 666이므로 106667에 666 이 들어가는 것을 확인할 수 있다.

댓글