첫 알고리즘 실전(?) 문제다. 그리디 문제다.
3개의 버튼 각각의 몫을 구하면 되는 문제다. 큰 수가 나머지 수들의 배수이기 때문에 거스름돈과 같은 기본적인 문제라고 할 수 있다.
가장 큰 수의 몫을 구해주고 나머지를 다음 수에 넘긴다. 차례로 진행한 후 마지막에 나머지가 남을 경우 -1을, 남지 않을 경우 리스트에 저장된 각 숫자를 반복문을 통해 출력해준다.
코드는 아래와 같다.
t = int(input()) # 숫자 입력받음.
buttons = [300, 60, 10] #단위가 초이기 때문에 통일
count = [] # 여러 개를 세어야 하기 때문에 리스트 형태로 만듦.
for button in buttons:
count.append(t // button) # 숫자를 나누고 몫을 저장.
t = t % button # 나머지를 저장
if t != 0:
print(-1)
else:
for i in range(3): #버튼이 3개라 3번 반복
print(count[i], end=" ") # 옆으로 출력하라고 했기 때문
'알고리즘 > 문제풀이' 카테고리의 다른 글
백준[2810] 컵홀더 (파이썬) (0) | 2021.12.10 |
---|---|
백준[2839] 설탕 배달 (파이썬) (0) | 2021.12.10 |
백준[2864] 5와 6의 차이 (파이썬) (0) | 2021.12.10 |
백준[5585] 거스름돈 (파이썬) (0) | 2021.12.10 |