파이썬/Algorithms
백준(BAEKJOON) 10162 전자레인지 - 파이썬(python)
hanshow113
2021. 9. 8. 16:46


2839번 설탕배달 문제와 같은 문제인 줄 알고 처음에는 300을 제외하고 60과 10으로 나누어서 60으로 나눈 몫이 5가 넘으면 그 개수만큼 300의 숫자를 늘려주는 식의 코드를 작성했으나
코드 작동 시간은 빠르지만 코드 길이가 굉장히 길어졌음

300, 60, 10 초 모두 10의 배수이므로 10으로 나누어 떨어지지 않으면 코드를 종료하고 그렇지 않으면 순서대로 몫, 나머지 연산을 통해 진행
제출 코드:
t = int(input())
if t % 10 != 0:
print(-1)
else:
print(t // 300, (t%300) // 60, (t%300%60) // 10, sep=' ')
초기 제출 코드:
B, C = 60, 10
t = int(input())
A_cnt, B_cnt, C_cnt = 0, 0, 0
ox = 0
while True:
if t % B == 0:
B_cnt += (t // B)
break
t -= C
C_cnt += 1
if t == 0:
break
if t < C:
ox = -1
print(ox)
break
if ox != -1:
if B_cnt >= 5:
print(str(B_cnt // 5), str(B_cnt % 5), str(C_cnt), sep=' ')
else:
print("0", str(B_cnt), str(C_cnt), sep=' ')