알고리즘/BOJ

백준 1436번 영화감독 숌

꾸준함. 2019. 2. 21. 13:41

문제 링크입니다: https://www.acmicpc.net/problem/1436


N의 범위가 작기 때문에 브루트 포스 기법을 이용하여 답을 찾아내면 됩니다.


#include <iostream>

#include <string>

using namespace std;

 

int main(void)

{

        ios_base::sync_with_stdio(0);

        cin.tie(0);

        int N;

        cin >> N;

 

        //첫 번째 종말의 숫자

        int num = 666;

        int turn = 1;

        //완전 탐색

        while (1)

        {

                 //해당 숫자를 찾았다면

                 if (turn == N)

                         break;

 

                 num++;

                

                 //해당 숫자를 저장하고

                 int copyNum = num;

                 string s;

                 while (copyNum)

                 {

                         s += (copyNum % 10 + '0');

                         copyNum /= 10;

                 }

                 copyNum = stoi(s);

 

                 //6이 연속으로 세개 있는지 확인

                 int six = 0;

                 while (copyNum)

                 {

                         int temp = copyNum % 10;

                         if (temp == 6)

                                 six++;

                         else if(six < 3)

                                 six = 0;

                         copyNum /= 10;

                 }

                 //조건을 만족한다면

                 if (six >= 3)

                         turn++;

        }

        cout << num << "\n";

        return 0;

}


개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~


반응형

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

백준 1351번 무한 수열  (0) 2019.02.22
백준 15685번 드래곤 커브  (0) 2019.02.21
백준 11886번 조세퍼스 문제 0  (0) 2019.02.21
백준 3673번 나눌 수 있는 부분수열  (2) 2019.02.17
백준 6597번 트리 복구  (0) 2019.02.16