개발자 미니민의 개발스터디

[백준 JAVA] 1436번 풀이 - 영화감독 숌

by mini_min

import java.io.IOException;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Scanner;

/**
 * 1436번 풀이 - 영화감독 숌
 * 종말의 수란 어떤 수에 6이 적어도 3개 이상 연속으로 들어가는 수를 말한다.
 * 제일 작은 종말의 수는 666이고, 그 다음으로 큰 수는 1666, 2666, 3666, .... 이다.
 *  따라서, 숌은 첫 번째 영화의 제목은 "세상의 종말 666", 두 번째 영화의 제목은 "세상의 종말 1666"와 같이 이름을 지을 것이다.
 *  숌이 만든 N번째 영화의 제목에 들어간 수를 출력하는 프로그램을 작성하시오.
 *
 * 첫 째 줄에는 n이 주어진다.
 */
public class Main {
    public static void main(String[] args) throws IOException {

        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt(); //몇번째?
        int m = 0; //처음은 666부터 시작.

        int count = 1; // 체크 카운트.

        while( true ){
            m++;

            if ( Integer.toString(m).indexOf("666") > -1 ){

                if ( n == count ){
                    System.out.println(m);
                    break;
                }
                else{
                    count++;
                }

            }
        }

        sc.close();
    }
}

 

풀이

While 문으로 m 이란 숫자를 계속 1씩 더한다.

연속한 666 을 구하기 위해서 m을 String 으로 변환해 indexOf 로 찾아낸다.

구하고자 하는 순번(n)과 666이 연속으로 나왔던 순번(count) 이 매칭되면 while 탈출! 정답을 출력한다.

 

👍🏻 더 나은 풀이가 있으면 언제든 댓글 달아주세요~ 

 

 

블로그의 정보

개발자 미니민의 개발로그

mini_min

활동하기