[알고리즘] 백준 2839 : 설탕 배달 - S4

eternal moment·2023년 3월 31일
0

2023.04.01 풀이

import sys
input=sys.stdin.readline

n=int(input())
cnt=0

while True:
    if n==0:
        print(cnt)
        break
    elif n<0:
        print(-1)
        break

    if n%5==0:
        n-=5
        cnt+=1
    elif n%3==0:
        n-=3
        cnt+=1
    else:
        n-=3
        cnt+=1

다른 풀이

1

N=int(input())
rem=N%5
if N==4 or N==7:
    print(-1)
else:
    if rem==0:
        print(N//5)
    elif rem==1 or rem==3:
        print(N//5+1)
    else:
        print(N//5+2)

2

sugar = int(input())

num = 0
if sugar in (4, 7):
    print(-1)
else:
    while sugar % 5:
        sugar -= 3
        num += 1
    num += sugar // 5
    print(num)

3

N = int(input())

result = -1
count = N // 5

while count >= 0:
    left = N - 5 * count
    if left % 3 == 0:
        result = count + left // 3
        break
    count = count - 1

print(result)

4

sugar = int(input())

bag = 0
while sugar >= 0 :
    if sugar % 5 == 0 :  # 5의 배수이면
        bag += (sugar // 5)  # 5로 나눈 몫을 구해야 정수가 됨
        print(bag)
        break
    sugar -= 3  
    bag += 1  # 5의 배수가 될 때까지 설탕-3, 봉지+1
else :
    print(-1)

check point

  • 그리디
    현재 상황에서 가장 좋은 것만 고르는 방법
    -> 문제에서 기준을 제시해주는 경우가 많음 : 가장 큰 순서대로, 가장 작은 순서대로 등

0개의 댓글