티스토리 뷰

반응형
 - 백준 알고리즘  : https://www.acmicpc.net/problem

문제

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

  • 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다.

  • 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오.

입력

  • 첫째 줄에 N이 주어진다.

출력

  • 상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N킬로그램을 만들 수 없다면 -1을 출력한다.


예제 입력

  • 18

예제 출력

  • 4



곰가드의 코드

  • n = int(input())
  • cnt5 = -1; cnt3 = 0

  • for i in range(int(n/5),-1,-1):
  •     if (n-5*i)%3==0:
  •         cnt5=i
  •         cnt3=(n-5*i)/3
  •         break

  • print(int(cnt5+cnt3))

참고할 파이썬 코드

  • while 문이나 for 문을 사용하는 반복문에서 break를 사용하면 반복문 전체를 빠져나오게 됩니다. 
  • 그런데 반복문 전체를 빠져나오는 것이 아니라 해당 조건만 건너뛰고 싶을 때는 continue를 사용하면 됩니다.

  • # break 문 사용시 : 
  •  num = 0
  •  while 1:
  •         print(num, end='')
  •         if num == 10:
  •                 break
  •         num += 1

  • # 출력
  • 0 1 2 3 4 5 6 7 8 9 10

  • # continue 문 사용시:
  •  num = 0
  •  while num < 10:
  •         num += 1
  •         if num == 5:
  •                 continue
  •         print(num, end='')

  • # 출력
  • 1 2 3 4 6 7 8 9 10
  • # 5가 빠져있음.


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함