java

백준 1436 영화감독 숲 자바 java

MiaCoder 2024. 1. 16. 15:41

아이디어:

 

1. 메소드를 사용하여 666이 포함되어 있는 숫자를 찾아내자.

2. 배열을 사용하여 해당되는 값을 모두 저장하자.

 

 

import java.util.ArrayList;
import java.util.Scanner;

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

        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        // 몇번 째 수를 출력할지 입력받음.

        ArrayList<String> list = new ArrayList<>();
        // 동적배열 선언

        int i = 666;
		// 666부터 시작하기 위한 수 i를 선언
        
        while (list.size() < N) {
        	//무한대로 반복문을 돌릴 수 없으니 for문 보다 while문을 사용한다.
            // 동적배열의 길이가 처음 0에서 시작하므로 list.size() < N 조건을 사용
            
            String strI = String.valueOf(i);
            //i를 String 타입으로 바꿔 strI에 저장한 후
            
            if (strI.contains("666")) {
            	//만약 666을 포함하고 잏다면
                
                list.add(strI);
                //동적배열에 추가한다.
                //666부터 점점 커지므로 배열에는 666을 포함하는 가장 작은 수 부터 순서대로 저장된다.
                
            }
            i++;
        }

        System.out.print(list.get(N - 1));
        //배열은 0부터 시작이므로 -1번째 값을 가져온다.
        sc.close();
    }

}