https://www.acmicpc.net/problem/2839
# 최소 봉지 개수의 조합을 짜려면 우선 5단위로 끊어야 한다.
# 5단위로 끊고 남은 나머지에 따라 조건문이 달라진다.
# 5로 나누기 떄문에 1 ~ 4 까지의 나머지가 생길 수 있다.
# case 0) 나머지가 없는 경우, 5로 나눈 몫을 그대로 가져간다.
# case 1) 나머지가 1인 경우, 5로 나눈 몫을 1개(5) 줄이고 나머지 1 + 5를 3단위로 나눈다.
# case 2) 나머지가 2인 경우, 5로 나눈 몫을 2개(10) 줄이고 나머지 2 + 10을 3단위로 나눈다.
# case 3) 나머지가 3인 경우, 5로 나눈 몫은 그대로 가져가고, 나머지 3을 3단위로 나눈다.
# case 4) 나머지가 4인 경우, 5로 나눈 몫을 1개(5) 줄이고 나머지 4 + 5를 3단위로 나눈다
# case 5) 5로 나눈 몫이 0인데 3 미만의 나머지가 있는 경우, -1을 출력한다.
n = int(input())
bag_five = 0
bag_three = 0
if n % 5 == 0:
bag_five = n // 5
print(bag_five + bag_three)
elif (n // 5 >= 1) and (n % 5 == 1):
bag_five = n // 5 - 1
n = n - bag_five * 5
bag_three = n // 3
print(bag_five + bag_three)
elif (n // 5 >= 2) and (n % 5 == 2):
bag_five = n // 5 - 2
n = n - bag_five * 5
bag_three = n // 3
print(bag_five + bag_three)
elif n % 5 == 3:
bag_five = n // 5
n = n - bag_five * 5
bag_three = n // 3
print(bag_five + bag_three)
elif (n // 5 >= 1) and (n % 5 == 4):
bag_five = n // 5 - 1
n = n - bag_five * 5
bag_three = n // 3
print(bag_five + bag_three)
else:
print(-1)
'Algorithm > 알고리즘 문제풀이' 카테고리의 다른 글
백준 1011번, 파이썬 - Fly me to the Alpha Centauri (0) | 2021.08.11 |
---|---|
백준 10757번, 파이썬 - 큰 수 A + B (0) | 2021.08.11 |
오늘의 알고리즘(백준 11004) (0) | 2021.07.23 |
오늘의 알고리즘(백준 2751) (0) | 2021.07.23 |
오늘의 알고리즘(백준 7490) (0) | 2021.07.22 |
댓글