알고리즘/python

[백준/Python] 1075번: 나누기

minliz 2025. 4. 2. 17:24

목차

📝 문제

🎯 알고리즘 핵심 단계

✅ 실습 인증 파트_코드

⚡ 트러블 슈팅

🤔 이것도 한 번 생각해봐요! (참고 자료)


 

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이 주어졌을 때, 마지막 두 자리를 00으로 만든 후
  • 주어진 f로 나누어떨어지는 가장 작은 숫자의 마지막 두 자리를 출력하는 문제

 

💡 문제 접근

 

1.  n의 마지막 두 자리를 00으로 변경

  • newN = n - (n % 100)

2.  f로 나누어 떨어지는 숫자를 찾을 때까지 증가

  • while 문을 사용하여 newN을 하나씩 증가시키면서 f로 나누어 떨어지는지 확인

3. 찾으면 마지막 두 자리 출력

  • str(newN)[-2:]를 사용하여 두 자리 출력 🚀🔥

✅ 실습 인증 _코드

n=int(input())
f=int(input())
newN = n- (n%100)
result=0
while True:
  if newN%f==0:
   print(str(newN)[-2:])
   break
  newN+=1

 


⚡ 트러블 슈팅

       🌱 첫번째 틀렸던 부분: for _ in range(): → 반복 범위를 설정하지 않음  

             => while문으로 수정