[ BOJ 10162 ] 전자레인지(Python)

uoayop·2021년 6월 7일
0

알고리즘 문제

목록 보기
86/103
post-thumbnail

문제

https://www.acmicpc.net/problem/10162

프로그래머스 레벨 2,,, 그리디,, 한 문제도 못풀고,,
백준 브론즈 그리디로 눈물 닦기,,

300초, 60초, 10초
세 버튼이 있을 때 가장 적게 버튼을 눌러서 T초를 만들 수 있는지 묻는 문제다.


문제 풀이

300초 -> 60초 -> 10초 순으로 버튼을 누를 수 있는만큼 누르면 된다.

a, b, c = 300, 60, 10

a_c = (T // a)
T %= a

a_ca 버튼을 누른 횟수이다.
즉, Ta로 나눈 몫을 의미한다.

Ta 버튼을 누른 뒤 남은 시간을 넣어준다.
Ta로 나눈 뒤 나머지를 의미한다.

이렇게 b, c도 반복해준 뒤 T 값이 0이 아니라면,
abc 버튼으론 T초를 만들 수 없다는 의미이므로 -1을 출력해주면 된다.


코드

import sys

a, b, c = 300, 60, 10
T = int(sys.stdin.readline())

a_c = (T // a)
T %= a

b_c = (T // b)
T %= b

c_c = (T // c)
T %= c


if T != 0:
    print(-1)
else:
    print(a_c, b_c, c_c)
profile
slow and steady wins the race 🐢

0개의 댓글