백준 2798 번 : 블랙잭
https://www.acmicpc.net/problem/2839

< 문제 요약 >
- 설탕 5키로와 3키로 짜리로 만들 수 있는 최소의 설탕개수를 구하라
- 정확이 N킬로그램이 되는 조합이 없다면 -1을 출력하라
만약 18kg의 설탕을 나눠야 한다고 가정 해 보겠습니다.
5kg짜리 3개 만들고 나머지 3kg은 3kg짜리 1개로 만들 수 있으며 나머지는 없습니다. 그러므로 4개로 만들 수 있습니다.
5kg짜리 2개 만들고 나머지 8kg은 3kg짜리 2개로 만들 수 있지만 나머지 2kg이 남기 때문에 넘어갑니다.
'
'
'
이 과정을 반복하기로 했습니다.
< 나의 코드 >
n = int(input())
max_5kg = n//5
min_val = 10000
while max_5kg >= 0:
rest = n # 초기화
count = 0 # 초기화
count += max_5kg
rest -= max_5kg*5
count += rest//3
if rest%3 == 0:
min_val = min(min_val,count)
max_5kg-=1
if min_val == 10000 :
print(-1)
else:
print(min_val)
< 다른 사람의 코드 >
n = int(input())
cnt = 0
while True:
if n % 5 != 0:
n = n - 3
cnt += 1
elif n % 5 == 0:
cnt += n // 5
print(cnt)
break
if n < 0:
print(-1)
break
이렇게 더 직관적인 방법이 존재했습니다!
'🏅Coding Test' 카테고리의 다른 글
| [파이썬, Python] 백준 1181 : 단어 정렬 (1) | 2024.02.11 |
|---|---|
| [파이썬, Python] 백준 11650 : 좌표 정렬하기 (1) | 2024.02.10 |
| [파이썬, Python] 백준 1436 : 영화감독 숌 (0) | 2024.02.09 |
| [파이썬, Python] 백준 19532 : 수학은 비대면강의입니다 (1) | 2024.02.09 |
| [파이썬, Python] 백준 2231 : 분해합 (1) | 2024.02.08 |