티스토리 뷰
https://www.acmicpc.net/problem/2839
1. 문제
2. 정답 코드
n = int(input())
answer = 0
while n >= 3 :
if n % 5 == 0 :
answer += n // 5
n = 0
break
n -= 3
answer += 1
if n != 0 :
answer = -1
print(answer)
- 그리디 알고리즘이므로, 일단 5킬로그램 봉지로 n 을 모두 배달할 수 있는지 확인한다.
- 만약 n이 5의 배수라면, 곧 바로 answer에 n을 5로 나눈 값을 더하고 반복문을 빠져 나온다.
- 만약 n이 5의 배수가 아니라면, n에서 3을 빼고, 봉지 수(answer)에 1을 더한다.
- 만약 n에서 3을 뺀 값이 3보다 작다면, 5킬로그램 봉지와 3킬로그램 봉지로 정확하게 n킬로그램을 만들 수 없는 것이다. 따라서 반복문을 빠져 나온다.
- while문을 빠져 나온 후 n의 값이 0이 아니라면, 5킬로그램과 3킬로그램으로 n을 만들 수 없는 것이다.
728x90
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준] 2217번 로프 파이썬 정답 코드 (0) | 2022.11.18 |
---|---|
[백준] 11399번 ATM 파이썬 정답 코드 (0) | 2022.11.18 |
[1920번] 수 찾기 파이썬 정답 코드 (0) | 2022.05.01 |
[1924번] 2007년 파이썬 정답 코드 (0) | 2022.04.26 |
[11650번] 좌표 정렬하기 파이썬 정답 코드 (0) | 2022.04.25 |