📖 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
💡 풀이 방식
• DP
dp[ j ] : 금액 j를 낼 수 있는 방법 수 (dp[n - 화폐 종류1], dp[n - 화폐 종류2], ...)
⇒ dp[ j ] = dp[ j - money[i] ]
🔺 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import java.util.*;
class Solution {
static final int MOD = 1_000_000_007;
public int solution(int n, int[] money) {
Arrays.sort(money);
int[] dp = new int[n + 1];
dp[0] = 1; // 화폐 하나로만 거스름돈을 채울 수 있는 경우
for(int i = 0 ; i < money.length ; i++) {
for(int j = money[i] ; j <= n ; j++) { // 화폐 이전까지는 값이 동일하므로 갱신할 필요 X
dp[j] += dp[j - money[i]] % MOD; // 💥 화폐 이전까지의 합 + 새 화폐로 낼 수 있는 방법
}
}
return dp[n];
}
}
|
cs |
➕ 다른 풀이 방식
2차원 dp를 활용한 풀이
[프로그래머스] 거스름돈 / Java
문제주소 :programmers.co.kr/learn/courses/30/lessons/12907?language=java 코딩테스트 연습 - 거스름돈 Finn은 편의점에서 야간 아르바이트를 하고 있습니다. 야간에 손님이 너무 없어 심심한 Finn은 손님들께 거
dev-note-97.tistory.com
💦 어려웠던 점
- DP인 거는 알았는데 점화식을 찾지 못했다,,허허허허
- 이전까지의 합이 모두 같으니까 굳이 채울 필요가 없어서 1차원으로 해결하는 아이디어 갓챠,,
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
✔ 풀이 참고.. 나도 dp 풀 때 이렇게 식을 그려서 진행해봐야겠다,,,
[프로그래머스 level_3] 거스름돈 for JAVA
https://programmers.co.kr/learn/courses/30/lessons/12907 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업
tosuccess.tistory.com
프로그래머스 거스름돈(Java, LV3) /DP
woongsin94.tistory.com
[JAVA/DP] 프로그래머스 거스름돈
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12907 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이
deonggideok.tistory.com
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Level2] 광물 캐기 (JAVA) (0) | 2024.03.19 |
---|---|
[프로그래머스/Level1] 공원 산책 (JAVA) (0) | 2024.03.18 |
[프로그래머스/Level2] 테이블 해시 함수 (JAVA) (0) | 2024.03.16 |
[프로그래머스/Level2] 혼자서 하는 틱택토 (JAVA) (0) | 2024.03.14 |
[프로그래머스/Level2] 두 원 사이의 정수 쌍 (JAVA) (0) | 2024.03.13 |