그리디/전자레인지

Q·2021년 8월 6일
0

알고리즘/백준

목록 보기
11/70

문제 설명


전체 코드

a = 300
b = 60
c = 10

t = int(input())

if t % c != 0:
    print(-1)
else:
    a_count = 0
    b_count = 0
    c_count = 0

    while t > 0:
        if t >= a:
            a_count = t//a
            t = t % a
        elif t >= b:
            b_count = t//b
            t = t % b
        else:
            c_count = t//c
            t = t % c

    print(a_count, b_count, c_count)

해결 방법

그리디의 기본적인 문제라고 볼 수 있다. 그리디하면 떠올리는 문제인 동전 거슬러주기와 같은 내용의 문제라고 생각하면 된다. a는 300초 b는 60초 c는 10초 이므로 만약 t가 10초로 나누어 떨어지지 않으면 t초를 만들 수 없으므로 -1을 print해주고 그게 아니라면 가장큰 a부터 t초를 세어 t가 a보다 크다면 300으로 나눈 횟수를 a_count에 더해주고 나머지를 t에 넣어준다. 이런식으로 비슷하게 하여 a_count, b_count, c_count를 print하면 된다.

profile
Data Engineer

0개의 댓글