사탕가게에 설탕을 정확하게 Nkg 배달해야한다. 설탕은 3kg봉지와 5kg봉지가 존재하며, 최대한 적은 봉지를 가지고 배달을 간다.
Nkg 배달할 경우 봉지 몇 개를 가지고 가면 되는가?(정확하게 만들 수 없는 경우 -1을 출력한다) 가 문제이다.
먼저 5로 나누고 나머지를 3으로 나누게끔 코드를 짰다.
n = int(input())
count = n // 5
n %= 5
if n % 3 == 0:
count += n // 3
if n % 3 != 0:
print(-1)
else:
print(count)
print(-1)
6kg같은 경우 5로 나누게되면 나머지가 1로 실패하지만 3kg짜리 두 개를 들고간다는 정답이 존재한다. 그냥 이상하다. 내가 왜 이렇게 코드를 짠거지??... print도 중복으로 출력을 한다. 뇌빼고 짰나보다... if문안에 있는 저 if문은 정체가 뭐냐며...
5로 나누어 떨어진다면 개수를 출력해서 반복문을 빠져나가고, 아니라면 -3씩 빼서 개수를 1씩 더한다. while-else문은 while문이 중단 없이 끝나는 경우(break) 실행하는 코드다.
while n >= 0:
if n % 5 == 0:
count += n // 5
print(count)
break
n -= 3
count += 1
else:
print(-1)