본문 바로가기

백준 write-up/정렬 & 그리디

[백준] 전자레인지 : 10162번 - Python

728x90
반응형

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

 

10162번: 전자레인지

3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은

www.acmicpc.net

 

 

 

문제를 풀면서 몰랐던 개념

 

[Python] 나눠지는 수 < 나누는 수

-> 몫은 0

c = 200 // 300
print(c)


>>> 0

 

 

 

문제의 접근 방법

 

- 10의 배수가 아닐 때, 제시된 3개의 버튼으로 T초를 맞출 수 없음.

- A, B, C 초기의 값을 0으로 설정해두어야 함.

- A, B, C 를 A부터(큰 값) 나눈 순서대로 몫을 카운트하고 나머지를 T에 저장해나가야 함.

- (분)은 (초)단위로 바꿔서 계산하기.

 

 

 

내가 막혔던 부분

 

- A, B, C 초기 값을 0으로 설정해두면 된다는 생각을 하지 못함.

 

 

 

문제 풀이 방법

 

요리시간 T초 입력 받기 -> T초가 10의 배수인지 판별해서 처리해주기 -> 10의 배수가 맞다면 A부터 300초로 나눈 몫을 A에 저장하고 나눈 나머지를 다시 T에 저장하기 -> 위 과정을 A, B, C 순으로 반복해주기(나눠지는 수가 더 작다면 초기에 설정해둔 값 그대로 0으로 출력됨) ->10의 배수가 아니라면 '-1' 출력하기

 

 

 

소스코드

T = int(input())

if (T % 10) == 0:
    A = B = C = 0
    A = T // 300
    T %= 300
    B = T // 60
    T %= 60
    C = T // 10
    T %= 10
    print(A, B, C)
else:
    print("-1")
728x90
반응형