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


문제

두 정수 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을 String으로 바꾸어 가장 뒤 두자리를 ch로, 나머지를 first로 지정
  • 여러 개가 존재하면 가장 작은 수로 바꾸기 때문에 00으로 시작 -> first에 00을 붙여 전체를 다시 정수로 만듦 -> test
  • test를 f로 나누면서 나누어 떨어질 때까지 test를 증가시키면서 반복
  • 나누어 떨어지면 test를 string으로 바꾸어 가장 뒤 두자리를 int로 출력
  • 항상 두 자리로 출력되어야하므로 %02d 포맷으로 출력


👀 주의할 점

  • 일단 생각나는대로 풀었는데, 계속 정수와 문자열 타입을 왔다갔다해서 이게 최선의 코드인지는 모르겠음
  • String 구간 출력은 .substring(start, end)
  • 정수 일정한 포맷으로 출력할 땐 printf(%02d) 형식 -> 두 자리로, 빈자리는 0으로 채워 정수 출력