백준(Baekjoon Online Judge) - 2839번(설탕 배달) 문제 풀이
Series: 알고리즘 문제풀이
알고리즘 문제풀이contains 12
- 1.Kakao, 2021 카카오 블라인드 코딩 테스트, 신규 아이디 추천
- 2.백준(Baekjoon Online Judge) - 2839번(설탕 배달) 문제 풀이
- 3.백준(Baekjoon Online Judge) - 11399번(ATM) 문제 풀이
- 4.백준(Baekjoon Online Judge) - 11047번(동전 0) 문제 풀이
- 5.백준(Baekjoon Online Judge) - 1931번(회의실 배정) 문제 풀이
- 6.백준(Baekjoon Online Judge) - 5585번(거스름돈) 문제 풀이
- 7.백준(Baekjoon Online Judge) - 1541번(잃어버린 괄호) 문제 풀이
- 8.백준(Baekjoon Online Judge) - 2217번(로프) 문제 풀이
- 9.백준(Baekjoon Online Judge) - 1946번(신입 사원) 문제 풀이
- 10.백준(Baekjoon Online Judge) - 10162번(전자레인지) 문제 풀이
- 11.백준(Baekjoon Online Judge) - 1339번(단어 수학) 문제 풀이
- 12.백준(Baekjoon Online Judge) - 4796번(캠핑) 문제 풀이
- 더보기
1. 문제
2. 입출력 예시
| 입력 예시 | 출력 예시 |
|---|---|
| 18 | 4 |
| 4 | -1 |
| 6 | 2 |
| 9 | 3 |
| 11 | 3 |
3. 문제 풀이
알고리즘을 푸는 데에 있어서 몇 가지 가정사항을 적용하였다.
- 입력 값(
N)이 5로 나누어 떨어질 경우는 5로 나눈 몫을 더한 후 모든 봉지 수량의 합을 출력 - 그 외에는 입력 값(
N)에 3을 빼고, 봉지 수는 1 증가시켜줄 것 - 만약,
2번 과정에서 입력 값(N)이 0보다 작을 경우 -1을 출력할 것
위 내용을 바탕으로 코드로 작성하면 다음과 같다.
def solution(n):
kg5 = 0
kg3 = 0
while True:
if not n % 5:
kg5 += n // 5
print(kg5 + kg3)
break
n -= 3
kg3 += 1
if n < 0:
print(-1)
break
N = int(input())
solution(N)제출한 코드의 성능은 메모리 28,776 KB, 시간 64ms이다. 5킬로그램 봉지와 3킬로그램 봉지의 수량을 굳이 나눌 필요없이 하나의 변수로 통일해도 되지만, 각각의 수량을 확인하고자 나누었다.