[BOJ] 1436

영화감독 숌

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

분류

  • Silver 5

  • 브루트포스 알고리즘

해법

각 자리의 숫자를 확인해서 6이 나왔다면 sequence_count 를 1씩 증가시키고,
6이 아닌 숫자가 나왔다면 sequence_count 를 0으로 되돌리면됩니다.

sequence_count 가 3 이상이라면 검사한 숫자는 블록버스터 제목을 위한 숫자입니다.

정답 코드

#include <iostream>
using namespace std;

bool BlockBuster(int n)
{
    int seq_cnt = 0;
    while (n > 0)
    {
        if (n % 10 == 6) // if digit is 6
            seq_cnt++;
        else // not six
            seq_cnt = 0; // 6 should be successive
        if (seq_cnt >= 3) // three "6" are successive -> "666"! blockbuster!
            return true;
        n /= 10;
    }
    return false;
}

int main(void)
{
    int n;
    int num = 666; // first blockbuster number
    int cnt = 0;
    cin >> n;
    
    while (1)
    {
        cnt = (BlockBuster(num)) ? cnt + 1 : cnt;
        if (cnt == n)
            break;
        num++;
    }
    cout << num;
}

Updated:

Leave a comment