본문 바로가기
PS 문제 풀이/Baekjoon

[BOJ] 백준 1075 나누기 (Java)

by 까망 하르방 2021. 2. 13.
반응형

출처https://www.acmicpc.net/problem/1075

100  2,000,000,000에서 끝의 두 자리수를 

최대한 작게 만들어서 주어진 정수 『 F 』로 나누어 떨어지게 하는 문제이다.

① 끝의 두 자리를 00 ~ 99로 숫자를 변환한다. (int 처리)

② 끝의 두 자리를 제외한 남은 자리의 수와 ①의 숫자를 이어준다. (String 처리)

③ F로 나누어 떨어지는 확인한다.


import java.util.Scanner;
 
// 이번 문제의 key point는 N의 뒷 두자리수를 최대한 작게하는 것이다.
// (물론 F에 나누어 떨어져야한다.)
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
         
        // 100 <= N <= 2,000,000,000
        String N = sc.next();
        // F <= 100
        int F = Integer.parseInt(sc.next());
 
        String x="",y=""; // 최종 출력할 두 자리수들.
         
        // N의 뒤의 둣자리수를 '00' ~ '99'까지 바꿔보며, F에 나누어 떨어지는 지 확인해본다.
        // 10의 자리수의 변화
        for(int i=0; i<=9; i++) {
            // 1의 자리수의 변화
            for(int j=0; j<=9; j++) {
                 
                // 주먹구구 방식으로 뒤의 두 자리수를 변화시킨다. (제일 낮은 숫자 크기부터 시작!)
                x = String.valueOf(i);
                y = String.valueOf(j);
                N = N.substring(0, N.length()-2) + x + y;
                 
                // 나누어 떨어질 때 break!
                if(Integer.parseInt(N) % F == 0) {
                    // 정답 출력!
                    System.out.println(x + y);
                    return;
                }
            }
        }
    }
}

 

반응형

댓글