알고리즘/백준 문제풀이

[백준] 2839 설탕배달 파이썬 풀이 (기본 수학 1)

자바칩 프라푸치노 2021. 6. 19. 14:24

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sugar = int(input())
bag = 0
while sugar>=0:
    if sugar%5==0#5의 배수이면 그냥 몫을 출력하면 됨
        bag = bag+ sugar//5
        print(bag)
        break
    sugar -= 3 #그게 아니면 3씩 빼면서 bag를 하나씩 늘려간다
    bag +=1
    
    if sugar<0#결국 sugar가 0보다 작아지면 -1를 출력한다
                #만약에 3으로 나누어 떨어진다면 0보다 작아질일은 없다
        print(-1)
        break
cs

 

문제풀이

봉지 3킬로랑 5킬로가 있는데 더 적은 봉지를 들고 싶으면

최대한 5로 해결을 해야한다.

그래서 만약에 설탕이 5의 배수이면 5킬로 봉지로 다 해결한다.

그런데 5의 배수가 아니라면 3킬로 봉지에 하나 넣어보고

남은 설탕이 5의 배수인지 본다.

또 아니라면 또 3킬로 봉지에 하나를 더 넣고 남은 설탕이 5킬로인지 본다

계속 3을 빼다가 0보다 작아지면 3이나 5로 해결할 수 없다는 것이므로 -1를 출력한다.

 

728x90