[백준 2839번-파이썬/Python] 설탕 배달
알고리즘 공부/BOJ백준 풀이

[백준 2839번-파이썬/Python] 설탕 배달

http://acmicpc.net/problem/2839

{코드}

n = int(input())
cnt = 0
while True:
	if n % 5 == 0:
		print(cnt + n // 5)
		break
	n -= 3
	cnt += 1
	if n < 0:
		print(-1)
		break

{설명}

먼저 위 코드를 이해하려면 당연하지만 이 부등식이 성립함을 알아햐 합니다. 15//3 > 15//5

굉장히 당연한 식인데요, 이를 이용해 5의 배수가 될때까지 3을 계속해서 빼주면 세 가지의 경우 중 하나가 발생합니다.

  1. n이 5의 배수인 경우 - 이때는 n을 5로 나눈 몫과 현재 봉지의 개수를 더한 값을 출력함

  2. n이 0인 경우 - 이때도 n을 5로 나눈 나머지가 0이므로 결과적으로 봉지의 개수 출력

  3. n이 0보다 작은 경우 - 이때는 3과 5로는 만들 수 없다는 뜻이므로 -1 출력