거스름돈
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 내 풀이
- 중복을 막으려면, 동전 단위별로 바깥 루프를 돌려야 함.
- 예를 들어 1,2,5 동전으로 5원을 만드는 경우의 수를 세려면,
- 1원을 기준으로 다 만들고 → 2원을 추가해서 만들고 → 5원을 추가하는 순서로 진행해야 중복이 제거됨
- 누적 DP: 앞의 수들을 만들 수 있는 방법의 수를 누적한 값
def solution(n, money):
INF=1000000007
dp=[0 for _ in range(n+1)]
dp[0]=1
for m in money: # 중복 방지하려면 한 화폐로 만들 수 있는 수 한 번씩만 체크
for i in range(m,n+1):
dp[i]=(dp[i]+dp[i-m])%INF
return dp[n]
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스][구현] 서버 증설 횟수 (0) | 2025.10.03 |
|---|---|
| [프로그래머스][Set][교집합] 📍비밀 코드 해독 (0) | 2025.09.24 |
| [프로그래머스] 줄 서는 방법 (3) | 2025.08.14 |
| [프로그래머스] 인사고과 (3) | 2025.07.26 |
| [프로그래머스][이분탐색] 징검다리 건너기 (1) | 2025.07.05 |