공부/백준(C++) - 2022~

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

상연 2022. 1. 25. 20:29

목차

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

     

    1436번: 영화감독 숌

    666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타

    www.acmicpc.net

    코드

    #include <iostream>
    using namespace std;
    
    bool judge_666(int n)
    {
    	string s = to_string(n);
    	for(int i=0; i < s.length() - 2; i++)
    	{
    		string temp = "";
    		for(int j=i; j<i+3; j++)
    		{
    			temp += s[j];
    		}
    		if(temp == "666")
    		{
    			return true;
    		}
    	}
    	return false;
    }
    
    int main()
    {
    	int n, cnt = 0, now = 666;
    	cin >> n;
    	
    	while(true)
    	{
    		if(judge_666(now))
    		{
    			cnt ++;
    		}
    		if(cnt == n)
    		{
    			cout << now;
    			break;
    		}
    		now++;
    	}
    	
    }

    설명

    그냥 대충 빠르게 풀려고 666부터 시작해서 모든 수를 string으로 바꾸고 substring 연산을 해서 666이 있으면 count를 하는것으로 했는데 이렇게 하면 좀 느리다.

    좀 빠르게 하려면 1000씩 나눠가면서 확인하는법도 있다.