반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- jwt
- frontend
- 게임개발
- MongoDB
- unity
- express
- RiotAPI
- 게임
- 코딩
- IntelliJ
- react
- bcrypt
- Python
- oAuth
- OAuth2.0
- 백엔드
- 스프링부트
- AWS
- 유니티
- 프로그래밍
- springboot
- 스프링
- c#
- 파이썬
- node.js
- 깃
- 백준
- JSON
- netlify
- spring
Archives
- Today
- Total
Unwound Developer
백준 2839번 (python) - 설탕 배달 본문
반응형
설탕 배달
문제
상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다.
상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다.
상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000)
출력
상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N킬로그램을 만들 수 없다면 -1을 출력한다.
풀이
N = int(input())
result = 0
for i in range(N//5,-1,-1): # i값은 N을 5로 나눈 몫 부터 0까지 반복
remain = N-(5*i) # 5kg 봉지를 최대한 많이 사용한 경우 부터 적은 경우까지
if(remain % 3 == 0): # 5kg 봉지를 최대한 많이 사용한 상태에서 3으로 나누어 떨어진다면 가장 적은 봉지를 사용하는 경우이다.
result = i + (remain//3)
print(result)
exit(0)
print(-1)
우선 5kg 봉지를 최대한 많이 사용하는 경우부터 따진다.
remain은 N kg의 설탕을 5kg 봉지에 최대한 많이 담고 남은 설탕의 kg을 저장하는 변수다.
그 상태에서 remain이 또 3으로 나누어 떨어진다면 그게 결과값이다.
result를 출력하지 못하고 for문이 종료된다면 -1을 출력한다.
반응형
'Algorithm' 카테고리의 다른 글
백준 1427번 (python) - 소트인사이드 (0) | 2023.10.15 |
---|---|
백준 1181번 (python) - 단어 정렬 (0) | 2023.10.15 |
백준 2798번 (python) - 블랙잭 (0) | 2023.10.13 |
백준 1436번 (python) - 영화감독 숌 (0) | 2023.10.13 |
백준 2745번 (Python) - 진법 변환 (0) | 2023.10.13 |