본문 바로가기

Algorithm

[파이썬] 백준 2839번: 설탕 배달

https://www.acmicpc.net/problem/2839

 

2839번: 설탕 배달

상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그

www.acmicpc.net

n = int(input())
def solution(n):
    cnt = 0
    while n > 0:
        if n % 5 == 0:
            n -= 5
            cnt += 1
        elif n % 3 == 0:
            n -= 3
            cnt += 1
        elif n > 5:
            n -= 5
            cnt += 1
        else:
            if n % 5 != 0 and n % 3 != 0:
                return -1
            else: cnt += 1
            break
    return cnt
print(solution(n))

 

1. n > 0 케이스의 while문을 돌려줍니다.

  • 첫 n이 5의 배수인 경우: n -=5, cnt += 1
  • 3의 배수인 경우: n -=3, cnt +=1
  • 5 또는 3의 배수가 아니고 5보다 큰 경우: n -=5, cnt +=1
  • 위의 케이스에 전부 속하지 않을 경우:
    • 5보다 작고, 5 또는 3의 배수가 아니면 (즉 5나 3이 아니면) -1을 출력합니다.
    • 그게 아니면 cnt += 1을 해줍니다.

2. 최종적으로 n을 출력합니다.