본문 바로가기

Algorithm/Baekjoon BOJ

[백준 / BOJ] 7568번 덩치 (C++)

반응형

백준 - 단계별로 풀어보기 [1436]

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

 

1436번: 영화감독 숌

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

www.acmicpc.net

 

## 문제

 

숫자에 "666"이 들어가는 순서대로 가장 작은 수인 666부터 시작해서 1666, 2666, 3666, 4666, 5666, 6661, 6662, 6663, ... 커진다고 생각할 때 입력 받은 순서에 맞는 숫자를 찾는 문제다. 예제 입력으로 2, 3, 6 하고 바로 큰 수로 넘어가서 감을 잡는데 힘들었지만, 7은 6661이 되는 것을 알 수 있다.

 

## 풀이

 

666부터 숫자를 세면 되므로 665라는 숫자를 지정해주고 이 값을 +1하면서 해당 숫자 내부에 "666"이 포함되어 있으면 정답에 +1을 하는 방식을 생각했었는데, 브루트포스 관련된 문제인 만큼 모든 경우의 수를 들리도록 반복문을 만들어서 문제를 해결해보았다.

 

## 코드

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

int main()
{
    int n;
    int count = 0;
    int title = 665;
    string s;

    cin >> n;

    while (++title)
    {
        s = to_string(title);

        if (s.find("666") != -1)
        {
            ++count;
        }

        if (count == n)
        {
            cout << title << endl;
            break;
        }
    }

    return 0;
}

 

## 평가

문제 설명이 조금 부족하여서 입력으로 7이 들어오면 6661이 된다는 걸 생각 못해서 많이 헤맸었다. 

브루트 포스 단계에 속해 있기에 적합한 문제이다. 

반응형