백준 1436번: 영화감독 숌(Java)

처음 봤을때는 그냥 n-1에 1000을 곱하고 666을 더하면 안되나 생각했지만, 예외가 있다.

1666,2666,3666일때는 그냥 1000만 더해주면 되지만 끝자리가 666이 아닐때, 즉  6660이거나 16660일때는 6661,6662,6663...이 순서로 적용된다. 따라서 이런 상황일때를 고려해 코드를 짜야한다.

 

가장 간단한 방법은 1씩 더해서 그 더한 값에 666이 포함되어있으면 카운트를 올리고, 카운트가 n과 같아진다면 출력하는 방법이 가장 간단하다. 하지만 시간이 오래 걸린다. 

 

일단은 가장 간단한 방법으로 풀어보았다.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        int n = scanner.nextInt();
        int count = 0;
        int movie_num = 666;
        while (true) {
            if (Integer.toString(movie_num).contains("666")) {
                count++;
            }
            if (count == n) {
                System.out.print(movie_num);
                break;
            }
            movie_num++;
        }
    }
}