-
백준 2839번 : 설탕 배달 - 파이썬 (python)알고리즘/그리디 2021. 3. 30. 00:55
* 방법 1
아이디어: N을 5로 나누어 5kg 설탕의 최대 수를 계산하고 나머지 ( N - 5kg 설탕 수 * 5) 이 3으로 나누어 떨어지는지 확인한다. 나누어 떨어지지 않으면 5kg 설탕의 수를 1만큼 줄이고 과정을 반복한다. 5kg 설탕 수가 -1이 되면 이는 만들 수 없는 설탕의 무게이므로 -1을 출력한다.
n = int(input()) # 배달해야 하는 설탕의 무게 result = 0 count3 = 0 # 3 킬로그램 설탕의 수 count5 = n // 5 # 5 킬로그램 설탕의 최대 수 while True: if (n - (count5 * 5)) % 3 == 0: count3 = (n - (count5 * 5)) // 3 result = count3 + count5 break else: count5 -= 1 # 5 킬로그램 설탕 수를 줄여가면서 확인 if count5 == -1: result = -1 break if (n - (count5 * 5)) % 3 == 0: count3 = (n - (count5 * 5)) // 3 result = count3 + count5 break print(result)
github.com/501501/baekjoon/blob/master/%EA%B7%B8%EB%A6%AC%EB%94%94/2839.py
'알고리즘 > 그리디' 카테고리의 다른 글
백준 2217번 : 로프 - 파이썬 (python) (0) 2021.04.02 백준 11047번 : 동전 0 - 파이썬 (python) (0) 2021.04.01 백준 4889번 : 안정적인 문자열 - 파이썬 (python) (0) 2021.03.25 백준 16953번 : A → B - 파이썬 (python) (0) 2021.03.25 그리디 알고리즘 : 무지의 먹방 라이브 - 파이썬 (python) (0) 2021.03.23