-문제: https://www.acmicpc.net/problem/10162
10162번: 전자레인지
3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은
www.acmicpc.net
답지 안 보고 풀었음
-정답풀이:
- 이전에 동전개수 구하는 문제와 비슷한 맥락이고, 다른 점은 세가지 수로 표현이 안될때 -1 출력하는 것이었는데
- -1이 출력되는 경우는 가장 마지막 수인 10으로 나누어지지 않을 때이다.
- 그래서 시작 부분에 그 부분을 확인하고 넘어가는 코드를 추가했다
n=int(input())
s=[300,60,10]
ans=[]
if n%10 !=0:
print(-1)
else:
for i in s:
if n//i !=0:
ans.append(n//i)
n=n%i
else:
ans.append(0)
for i in ans:
print(i, end=' ')
- 6/26 풀이:
크게 어렵지 않았던 문제.
마지막에 print(ans)로 했다가 틀려서 고친 후 돌려봤더니 정답이 떴다.
n=int(input())
units=[300,60,10]
ans=[0 for _ in range(3)]
for i in range(3) :
if n // units[i] :
ans[i] += n // units[i]
n -= units[i]*(n//units[i])
if n !=0 :
print(-1)
else:
print(ans[0],ans[1],ans[2])
'백준 > Greedy' 카테고리의 다른 글
[코딩테스트] 백준 1789번: 수들의 합 (0) | 2022.01.20 |
---|---|
[코딩테스트] 백준 10610번: 30 (0) | 2022.01.20 |
[코딩테스트] 백준 2217번: 로프 (0) | 2022.01.19 |
[코딩테스트] 백준 5585번: 거스름돈 (0) | 2022.01.17 |
[코딩테스트] 백준 1541번: 잃어버린 괄호 (0) | 2022.01.17 |