일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 백준온라인저지
- 알고리즘
- airflow architecture
- telegram
- Data Engineering
- Airflow
- delete join
- docker container
- Python
- 프로그래머스
- Pseudo Lab
- Spark
- 그리디
- docker image
- MySQL
- hackerrank
- Dynamic Programming
- 2023년 목표
- datacamp
- terraform
- docker
- 빅데이터를 지탱하는 기술
- airflow webserver
- 백준 온라인 저지
- BOT
- data_engineer
- leetcode
- 데이터 엔지니어
- dsf
- SQL
Archives
- Today
- Total
Lim Seunghyun Space
[백준 온라인 저지] 설탕 배달 본문
문제 출처
2839번: 설탕 배달
상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그
www.acmicpc.net
문제 요구사항
- 설탕 봉지가 3kg, 5kg짜리를 사용하여 정확하게 N킬로그램을 배달해야 한다.
- 배달을 위해 사용하는 봉지의 최소 갯수를 출력
- 조건에 제시된 설탕 봉지를 사용하여 정확하게 N킬로그램을 만들 수 없는 경우 -1을 출력
나의 코드 (python3)
# source : https://www.acmicpc.net/problem/2839
N = int(input())
answer = 0
while N >= 0: # N이 0 이상일 때까지 반복
if N % 5 == 0:
answer += N // 5
break # N이 5의 배수라면 3kg 봉지를 고려할 필요가 없기 때문에 종료
N -= 3 # 5의 배수가 아니라면 하나의 3kg 봉지에 설탕을 담는다. # 만일 N이 3보다 작으면 반복문 종료
answer += 1
if N < 0:
print(-1)
else:
print(answer)
- 5는 3의 배수가 아니므로 가장 많이 담을 수 있는 봉지순으로 문제를 해결할 수 없었다.
- 봉지를 최소 갯수를 이용해야하기 때문에 5kg 봉지를 많이 쓰는 쪽으로 컨셉을 잡고 시작
- 전체 무게가 5로 나누어 떨어진다고 하면 전체 무게를 5로 나눈 몫을 이용하면 되지만 그런게 아니라면 3kg 봉지를 하나 사용한 것으로 간주하여 전체 무게에서 3kg 무게를 빼주었다.
Github
728x90
'Algorithm > 문제' 카테고리의 다른 글
[백준 온라인 저지] 회의실 배정 (0) | 2022.02.10 |
---|---|
[백준 온라인 저지] 로프 (0) | 2022.01.28 |
[백준 온라인 저지] 진법 변환 (0) | 2021.12.30 |
[Leetcode] Climbing stairs (0) | 2021.12.13 |
[프로그래머스] 문자열 압축 (0) | 2021.12.05 |