본문 바로가기

백준 문제풀기/JAVA

[백준 1436 JAVA 자바] 영화감독 숌

'666'이 들어간 숫자중 N번째로 작은 수를 출력하라!

 

1666 2666 3666~~

처럼 '666'이 포함된 숫자를 찾아가면서

N번째는 어떤 숫자인지 출력하는 문제입니다

 

1. num = 665부터 1씩 계속 증가시킵니다

2. num을 String으로 바꾸고 String.contains("666")을 이용해 '666'이 포함됐는지 판단합니다

3. 포함되어있다면 count += 1;을 하고 n번째가 나올때까지 반복합니다

 

코드입니다

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(br.readLine());

        int num = 665;
        int count = 0;

        while (count < n) {
            if (String.valueOf(num).contains("666")) {
                count += 1;
            }
            
            num += 1;
        }
        System.out.println(num - 1);
    }
}

 

지금 와서 보면

num += 1;

if (String.valueOf(num).contains("666")

으로 순서를 바꿔서

 

마지막에 

Syste.out.print(num); 으로 고치는게

더 깔끔한것 같네요