baekjoon/Brute_Force

백준 1436번 : 영화감독 숌 자바

Meluu_ 2024. 9. 1. 20:40

 

 

 

 

🧫 문제 분석

 

✔️ 출처

영화감독 숌 실버 5

 

📖 문제

 

완전탐색 문제로

6이 3개 이상 연속되어 들어가는 수를 말한다고 한다.

즉 여러 수 중에 "666"이 포함되어 있으면 그 수는 종말의 수 라는 것이다.

 

문제의 이해를 잘 못했는데

결국에는 사전 순서? 크기 순서대로 번호가 주어진다.

 

5666 -> 6660 -> 6661 -> ~ 6669 -> 7666 ... 이런식으로 가는 것이다.

 

나는 단순히 666부터 시작해서 intMax까지 완전탐색을 했다.

현재 수를 문자열로 바꾸고 contains로 666이 포함되어있으면 count 하고

count가 N과 같다면 count에 그 수를 저장하고 탐색을 종료한 뒤 count를 반환한다

 

 

🔅 문제 풀이

import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int n = Integer.parseInt(br.readLine());

        int count = 0;
        for (int i = 666; i < Integer.MAX_VALUE; i++) {
            if (String.valueOf(i).contains("666")) {
                count++;
                if (count == n) {
                    count = i;
                    break;
                }
            }
        }

        bw.write(count + "");
        bw.flush();
        bw.close();
    }



}

 

 

 

❗ 오답노트 / 필요한 지식

  1.  StringBuilder를 처음에는 썼는데 넣고 문자열로 만들고 삭제하고 이래서 연산이 많이 들어가서 시간이 100ms정도 차이났다. 때로는 단순하게 하는게 더 빠를 수 있다. 

'baekjoon > Brute_Force' 카테고리의 다른 글

백준 9663번 : N-Queen [자바]  (0) 2025.04.16
백준 15663번 : N과 M (9) [자바]  (0) 2025.03.28
백준 1027번 : 고층건물 자바  (2) 2024.07.22
백준 1038번 : 감소하는 수 자바  (0) 2024.07.18
백준 1065 자바 : 한수  (0) 2023.11.09