매일 BOJ

(매일 BOJ) C++ 1436번 영화감독 숌

norepinephrine 2025. 7. 12. 23:23

이번 문제는 실버 5 난이도의 영화감독 숌 문제이다.

접근법

이 문제에서는 "666" 의 숫자조합이 수에 포함되어 있는 경우를 모두 찾아야 한다.

따라서 필자는 정수를 string 으로 변환한 후 "666" 이 포함되어 있으면 count 한 후 N의 값과 일치한 경우의 정수를 출력하는 방식으로 코드를 작성하였다.

이 과정에서 숫자간의 규칙이 있는지 확인해보았지만 특별한 규칙은 찾지 못하였고, N이 최대 10000이고, 시간제한이 2초이기에 브루트포스를 사용해도 TLE가 발생하지 않음을 확인할 수 있었다. 따라서 브루트포스를 사용하여 문제를 해결하였다.

 

새롭게 배운 내용

C++ 에서는 string 라이브러리 속 string to_string (int) 이라는 함수를 사용하여 int를 string으로 바꿔줄 수 있다.

 

 

아래는 작성한 코드이다.

#include <bits/stdc++.h>
using namespace std;

int main (void){
    ios::sync_with_stdio(0); cin.tie(0);
    int n;
    cin >> n;
    int count = 1, i = 666;
    while (count <= n){
        if (to_string(i).find("666") != string::npos) count += 1;
        i += 1;
    }
    cout << (i-1);
}