링크 : https://www.acmicpc.net/problem/10162
- 문제
- 소요 시간 : 11분 40초




- 설계하기(접근방법)
1. 판단하기 - 각각의 초는 서로의 배수이기 때문에 그리디 알고리즘을 사용할 수 있다
2. button_list 를 선언하고 [300,60,10]을 저장한다
3. button_cnt(각각의 버튼 횟수를 저장할 리스트)를 선언한다
4. 조건문을 통해 10의 배수가 아닌 경우 -1을 append 하고 끝낸다
5. 10의 배수인경우
입력받은 초를 300으로 나누고 몫을 append한다
나머지 초를 60으로 나누고....
위의 식을 반복한다.
6. button_list를 출력한다
- 코드(출력)
sec = int(input())
button_cnt = []
button = [300, 60, 10]
if (sec % 10 != 0):
button_cnt.append(-1)
else:
for i in button:
button_cnt.append(sec // i)
sec = sec % i
for i in button_cnt:
print(i, end=' ')
- 얻어갈 부분
1. 처음에는 300,60,10을 각각 나누어주려 했지만 식의 반복성이 보여 리스트를 선언해준 후 반복문을 통해 나누었다
2. print(end = ' ')메서드를 통해 줄바꿈 없이 출력할 수 있다.
3. 처음에 예제 출력을 잘못 확인해서 시간을 낭비했다. 출력 포맷을 정확히 확인하자
'알고리즘(백준) > 그리디' 카테고리의 다른 글
| [알고리즘/그리디] 10610 번 : 30 - python (0) | 2023.02.21 |
|---|---|
| [알고리즘/그리디] 13305번 : 주유소 - python (0) | 2023.02.21 |
| [알고리즘/그리디] 1541번 : 잃어버린 괄호 - python (0) | 2023.02.20 |
| [알고리즘/그리디] 1789 번 : 수들의 합 - python (0) | 2023.02.20 |
| [알고리즘/그리디] 5585 번 : 거스름돈 - python (0) | 2023.02.20 |