[백준]1075_나누기

김피자·2022년 12월 21일
0

백준

목록 보기
2/42

문제

두 정수 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을 추가해서 두 자리로 만들어야 한다.


예제 입력

4
1000 3
23442 75
428392 17
32442 99

예제 출력

02
00
15
72

풀이

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int test_case = sc.nextInt(); // 테스트케이스
		int n = 0; 
		int f = 0;
	
		// 테스트케이스 반복시작
		for(int T = 1; T<=test_case; T++) {
			// 예외처리
			do {
				n = sc.nextInt();
				f = sc.nextInt();
			} // 조건이 참인동안 실행 
            while((n<=100)&&(n>=2000000000)&&(f>=100)); 
            
			// n이 f로 한번에 나눠떨어지는 경우,
			if(n%f==0) {
				System.out.println(n%100);
			}// n이 f로 한번에 나눠떨어지지 않는 경우,
			else {
				// 뒤 두자리를 최대한 작게 만들기위해 00으로 초기화
				n -= (n % 100);
				
				// 반복문 돌면서 작은 수로 나눠 떨어지게 만듬
				for(int i = 0; ;i++) {
					// 나눠 떨어지는 경우,
                    if(n%f==0) {
                    	// 0도 출력하기위해 문자열로 변환
						String value = String.valueOf(n);
						
                        // 총 길이 -2번째 ~ 총길이 n번째  
                        String result = value.substring(value.length()-2,value.length());
						System.out.println(result);
						break;
					}
                    // 나눠 떨어지지 않는 경우,
					++n;
				}
			}
		
		}
	}
}

리뷰

  1. substring 사용하기 어려워요ㅠㅠ
  2. 문제 자체는 쉬운데 0을 출력하는데서 좀 막혔다 > 바보
profile
제로부터시작하는코딩생활

0개의 댓글