Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- standford University
- 나동빈님
- 형변환
- Runtime constants
- 학습 알고리즘
- 프로그래밍
- 본즈앤올
- sizeof()
- algorithm
- 기계학습
- decimal
- const
- Andrew Ng
- compile time constants
- 기계학습 기초
- 연산자
- CLion
- classification problem
- 코딩테스트
- 단항연산자
- regression problem
- 이코테
- Machine Learning
- Greedy
- 홍정모님
- 코드블럭 오류
- #define
- #endif
- coursera
- C++
Archives
- Today
- Total
wellcome_공부일기
문제1) 거슬러 주어야 할 동전의 최소 개수 본문
문제1.
당신은 음식점의 계산을 도와주는 점원입니다.
카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정합니다.
손님에게 거슬러 주어야 할 돈이 N원일 때, 거슬러 주어야 할 동전의 최소 개수를 구하세요.
단, 거슬러 줘야 할 돈 N은 항상 10의 배수입니다. 예시, N = 1260
n = 1260
count = 0
# 큰 단위의 화폐부터 차례대로 확인하기
array = [500, 100, 50, 10]
for coin in array:
count += (n // coin) # 해당 화폐로 거슬러 줄 수 있는 동전의 개수 세기
n %= coin
print(count)
화폐의 종류가 K라고 할 때, 소스코드의 시간 복잡도는 O(K)입니다.
이 알고리즘의 시간 복잡도는 거슬러줘야 하는 금액과는 무관하며, 동전의 총 종류에만 영향을 받습니다.
지금 코드를 봐도, 헷갈리는 문제를 코드로 짧게 표현할 수 있다는게 놀랍다.
나는 처음에 고민을 많이 했다. 0ㅇ0
'알고리즘 > 그리디 알고리즘(Greedy Algorithm)' 카테고리의 다른 글
문제4) 모험가 길드 (0) | 2021.01.26 |
---|---|
문제3) 곱하기 혹은 더하기 (0) | 2021.01.25 |
문제2) 1이 될 때까지 (0) | 2021.01.24 |
그리디 알고리즘(Greedy Algorithm)이란? (0) | 2021.01.22 |
Comments