문제
나의 답안
t=int(input())
if t % 10 !=0:
print(-1)
else:
a,b,c=0,0,0
a=t//300
b=(t % 300) // 60
c=(t % 60) // 10
print(a,b,c)
접근 방법
- 그리디 알고리즘 문제이므로 순서대로 최적의 값을 갖는 것을 택해주면 된다. 최소 버튼 출력이므로 큰 버튼 값부터 계산
- a, b 버튼은 분을 초로 변환해주어서 계산해준다.
- 입력받은 시간을 10으로 나눴을 때의 나머지가 0이 아니라면, 버튼으로 시간을 정확히 맞출 수 없는 경우이므로(모든 버튼은 10초단위임) -1을 출력해준다.
- abc버튼 모두 0으로 초기화해준 후, 각 버튼의 횟수를 구해주면 된다.
- a는 300초씩 동작하므로, 입력받은 시간에 대해 300으로 나눈 몫을 구해준다.
- b는 300으로 나눈 나머지를 60으로 나눈 몫을 구해주면 된다.
- 마지막으로 c는 60으로 나눈 나머지를 10으로 나눈 몫을 구해주면 횟수를 구할 수 있게된다.