[백준:1436] 영화감독 숌 (JAVA)

dev_kiiim·2022년 12월 6일
0

CODING TEST

목록 보기
15/23
post-thumbnail

오늘의 문제는 브루트 포스 알고리즘의 영화감독 숌 문제이다.
영화 시리즈의 번호를 매기는 문제인데,
1, 2, 3 ... 순서가 아닌 '666'을 포함해서 666, 1666, 2666 ... 순서로 정해진다.
여기서 주의깊게 봐야하는 부분은 5666의 다음이다.
666이 포함되지만 값이 작은 순서대로 정해지기 때문에 5666, 6660, 6661 ... 6669, 7666 ... 순서가 되어야 한다.

위의 내용을 체크하고 처음 생각했던 로직은
666을 하나의 문자(예를 들면 'A')로 만들어서 1A, 2A, 3A ... 로 나열되도록 구현하려고 하였으나,,
자리 이동이 어려울 듯 하여 다른 방법을 생각해냈다.


public static void main(String[] args) throws IOException {
    BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
    int N = Integer.parseInt(bf.readLine());
    int version = 0;
    int n = 0;

    while(n != N){
        version++;
        if(String.valueOf(version).contains("666")){
            n++;
        }
    }
    System.out.println(version);
}

영화 시리즈의 번호(version)를 1씩 증가시키면서
그 수에 '666'이 포함되어 있을 때, 입력값 N 과 비교할 변수 n을 1씩 증가시켜서
n이 N과 같아지는 순간의 version을 출력하는 방법으로 구현했다.

0개의 댓글