코딩코딩코딩

백준(BAEKJOON) 10162 전자레인지 - 파이썬(python) 본문

파이썬/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=' ')
Comments