Problem_Solving

백준(BOJ) 1436 : 영화감독 숌 (실버5) / 자바(Java) 풀이

CONCAT 2024. 4. 30. 14:08
728x90

문제

https://www.acmicpc.net/problem/1436

3줄 요약

  1. 입력값 N을 받아와서 N번째 종말의 숫자를 찾는 문제를 해결합니다.
  2. 666부터 시작하여 1씩 증가시키면서, 숫자에 "666"이 포함되어 있는지 확인합니다.
  3. N번째로 "666"이 포함된 숫자를 찾으면 해당 숫자를 출력하고 프로그램을 종료합니다.

코드

// package boj1436;

import java.io.*;

public class Main {
    public static void main(String[] args) throws Exception {
        // 입력
        // 로컬에서 테스트할 때 사용하는 입력 파일 설정
        // System.setIn(new FileInputStream("src/input.txt"));
        
        // BufferedReader를 사용하여 입력 받기
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        // 입력받은 문자열을 정수로 변환하여 N에 저장
        int N = Integer.parseInt(br.readLine());
        
        // 입력 스트림 닫기
        br.close();

        // 666부터 시작하는 변수 v 초기화
        int v = 666;
        
        // N번째 종말의 숫자를 찾기 위한 반복문
        for (int i = 1; i < N; i++) {
            // v 값을 1씩 증가시키면서 탐색
            v++;
            
            // v의 문자열 표현에 "666"이 포함되어 있지 않으면 계속 증가
            while (!Integer.toString(v).contains("666")) {
                v++;
            }
        }

        // 출력
        // BufferedWriter를 사용하여 출력
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        // N번째 종말의 숫자를 문자열로 변환하여 출력
        bw.write(Integer.toString(v));
        
        // 출력 버퍼 비우기
        bw.flush();
        
        // 출력 스트림 닫기
        bw.close();
    }
}