티스토리 뷰

BOJ

[백준/BOJ] 2839번: 설탕 배달(Python)

jeongyeji 2021. 4. 1. 11:36

n = int(input())
cnt = 0
while n > 0:
    if n % 5 == 0:
        cnt += n // 5
        n = 0
        break
    n -= 3
    cnt += 1
print(cnt if n == 0 else -1)

n>0일 때, n이 5로 나누어지면 cnt는 n을 5로 나눈 몫을 더하고, n은 0으로 하고 while문을 빠져나간다.
n이 5로 나누어지지 않으면 n은 3을 빼고, cnt는 1을 더한다.
n이 0이면 cnt를 출력하고 0이 아니면 정확하게 만들 수 없는 경우이므로 -1을 출력한다.


n = int(input())
cnt = 0
while n > 0 and n % 5 != 0:
    n -= 3
    cnt += 1
print(-1 if n < 0 else n // 5 + cnt)

코드를 조금 더 간단하게 변경했다. n이 0보다 크고 5로 나누어지지 않으면, n은 3을 빼고 cnt는 1을 더하는 while문을 수행한다. while문이 끝난 뒤, n이 0보다 작으면 나누어 떨어지지 않는 경우이므로 -1을 출력하고 0 이상이면 n을 5로 나눈 몫과 cnt의 합을 출력한다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
글 보관함