궤도

[백준] 1436번 : 영화감독 숌 본문

💻 현생/⛓ 알고리즘

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

영이오 2020. 10. 15. 21:38

문제

 


문제

 

생각했던 것 보다 훨씬 간단한 방법으로 풀려 당황했던 문제이다. 처음엔 '666'이 등장하는 숫자의 패턴을 찾으려고 했으나, 변수가 너무 많았다. 그러다가 이 문제가 브루트 포스에 포함된다는 것을 떠올리고, 혹시나 하는 생각을 하며 코드를 짰는데 그게 맞았다. 그냥 단순하게 666부터 숫자를 늘려가며 해당 숫자를 문자열로 바꾸고 그 문자열에 '666'이라는 패턴이 있는지 확인했다. 시간초과가 날 것이라고 생각 했는데, 코드가 돌아갔다.


소스코드

 

#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main() { //이게 되네...
	int N, count = 0;

	cin >> N;
	for (int i = 666;; i++) { //666부터 시작해서
		string str = to_string(i); //숫자 문자로 바꾼다음에
		if (str.find("666") != string::npos) //666패턴 체크함
			count++;
		if (N == count) { //계속 체크하다 원하는 만큼 찾으면 출력했는데
			cout << i << '\n';
			break;
		}
	} 
}
Comments