[백준] 10162번 : 전자레인지 (파이썬)

뚝딱이 공학도·2022년 2월 24일
0

문제풀이_백준

목록 보기
69/159



문제



나의 답안

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 버튼은 분을 초로 변환해주어서 계산해준다.
  1. 입력받은 시간을 10으로 나눴을 때의 나머지가 0이 아니라면, 버튼으로 시간을 정확히 맞출 수 없는 경우이므로(모든 버튼은 10초단위임) -1을 출력해준다.
  2. abc버튼 모두 0으로 초기화해준 후, 각 버튼의 횟수를 구해주면 된다.
  3. a는 300초씩 동작하므로, 입력받은 시간에 대해 300으로 나눈 몫을 구해준다.
  4. b는 300으로 나눈 나머지를 60으로 나눈 몫을 구해주면 된다.
  5. 마지막으로 c는 60으로 나눈 나머지를 10으로 나눈 몫을 구해주면 횟수를 구할 수 있게된다.

0개의 댓글