1日1AL: 나누기(백준 1075)

Beautify.log·2021년 12월 22일
0

Coding Test Collections

목록 보기
2/10
post-thumbnail

문제


두 정수 N과 F가 주어진다. 지민이는 정수 N의 가장 뒤 두 자리를 적절히 바꿔서 N을 F로 나누어 떨어지게 만들려고 한다. 만약 가능한 것이 여러 가지이면, 뒤 두 자리를 가능하면 작게 만들려고 한다.

예를 들어, N=275이고, F=5이면, 답은 00이다. 200이 5로 나누어 떨어지기 때문이다. N=1021이고, F=11이면, 정답은 01인데, 1001이 11로 나누어 떨어지기 때문이다.


입력


첫째 줄에 N, 둘째 줄에 F가 주어진다. N은 100보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. F는 100보다 작거나 같은 자연수이다.


출력


첫째 줄에 마지막 두 자리를 모두 출력한다. 한자리이면 앞에 0을 추가해서 두 자리로 만들어야 한다.


입출력 예시



풀이

우선 문제를 처음보고 이게 뭐냐!!! 하며 당황했습니다.

그런데 이제 문제에서 소정의(?) 힌트를 주고 있는데,

N=275이고, F=5이면, 답은 00이다. 200이 5로 나누어 떨어지기 때문이다.
N=1021이고, F=11이면, 정답은 01인데, 1001이 11로 나누어 떨어지기 때문이다.

뒤 두자리를 0으로 만들어버리고 1씩 증가시키면서 f로 나누어 떨어질 때까지 계속 비교/반복해주면 됩니다.

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        int f = sc.nextInt();

        int temp = (n/100) * 100;

        while(true) {
            if(temp % f == 0) {
                int res = temp % 100;
                if(res < 10) System.out.println("0" + res);
                else System.out.println(res);
                break;
            }
            temp++;
        }
    }
}

nf를 입력받고 n을 100으로 나눠 다시 100을 곱해 뒷자리를 없애 00을 붙여준 값을 temp에 저장해 줍니다.

그리고 tempf로 나눈 나머지가 0이라면 temp를 100으로 나눈 나머지가 10보다 작을 때, 그러니까 1의자리 숫자가 나올 때 이 숫자의 앞에 0을 붙여 출력해주고, 그렇지 않을 때는 그냥 출력해줍니다.
이 때 temp는 1씩 증가합니다.

profile
tried ? drinkCoffee : keepGoing;

0개의 댓글