• TOC {:toc}

이 글은 백준 온라인 저지의 10162번 문제를 파이썬(Python)으로 풀이한 것을 모아놓은 글입니다.

일종의 연습 기록이며 제가 정답을 받은 코드와 참고할만한 다른 코드를 같이 기록합니다. 필요한 경우 코드에 대한 해설을 기록합니다만 코드는 통과했어도 해설은 틀릴 수 있기 때문에 가볍게 참고해주시길 부탁드립니다. 피드백은 편하신 방법으로 자유롭게 주시면 감사하겠습니다.

2021.03.27

메모리 시간 코드 길이
28776 KB 68 ms 162 B
T = int(input())
b = []

# `% 10` 결과 1의 자리의 수가 남아있으면
if T % 10:
    # `-1`을 출력한다.
    print(-1)
else:
    # 5분, 1분, 10초 순으로 리스트에 추가한 뒤 
    b.append(T // 300)
    T %= 300
    b.append(T // 60)
    T %= 60
    b.append(T // 10)
    # 리스트를 언 패킹(unpacking)해서 출력한다.
    print(*b)

아이디어 & 풀이

일의 자리 값이 남아있으면 제시된 3개의 버튼으로 T초를 맞출 수 없다.

  • 이 경우 10으로 나눴을 때 0이 아닌 값을 갖기 때문에 조건에서 Truthy하다.
  • 이를 이용해서 -1을 출력하는 코드를 작성한다.

동일한 시간은 최대의 시간으로 나눴을 때 최소의 횟수가 나온다.

  • 버튼을 조작하는 횟수를 최소화 하기 위해서는 시간을 단위가 큰 5분, 1분, 10초 순으로 나눠줘야 한다.