[알고리즘/백준] 2839번 : 설탕 배달(python)

  • 큰 봉지를 먼저 사용하면 봉지의 개수가 줄어든다.

내 처음 풀이

sugar = int(input())
an, sugar = divmod(sugar, 5)
an += (sugar // 3)
sugar = sugar % 3
if sugar != 0:
    print(-1)
else:
    print(an)

하지만 문제를 꼼곰하게 읽지 않았다...
test cases에서 6이 들어오면 내 코드는 5로 먼저 나누기 때문에 답이 -1이 나와버린다... 하지만 3으로 6이 가능하기 때문에!!! 2가 나와야함...

처음부터 5를 나누고 그 나머지 값을 3으로 나누니까 계속 실패했다. 그래서 역으로 생각해서 5로 나눠지지 않으면 3을 빼주면서 5의 배수가 나올때 까지 반복하는 방식으로 풀었다.

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

좋은 웹페이지 즐겨찾기