[プログラマー]おつり(JAVA)
769 ワード
問題の説明
Finnはコンビニで夜間アルバイトをしています.夜、お客さんが多すぎて退屈していたFinnがお客さんに小銭を探してあげたとき、方法を探すことにしました.
例えば、お客様に5元を探して、1元、2元、5元を持っている場合は、以下の4つの方法で5元を探すことができます.
5元で金を探す.
1元は3個、2元は1個で探します.
1元で1個、2元で取り戻します.
5元で1つ探します.
取り戻した金額nとFinnが現在持っているお金の種類moneyをパラメータとする必要がある場合は、Finnがn元の取り戻し方法の数を返すように解く関数を完了してください.
せいげんじょうけん
nは100000以下の自然数である.
通貨単位は100種類以下です.
すべての通貨が無限であると仮定します.
答えは大きくなるかもしれませんが、10万07の残りを返してください.
Code
わあ.これ.ほぼ30分でバカなことをして、回り道をしました...解き直そう.
Finnはコンビニで夜間アルバイトをしています.夜、お客さんが多すぎて退屈していたFinnがお客さんに小銭を探してあげたとき、方法を探すことにしました.
例えば、お客様に5元を探して、1元、2元、5元を持っている場合は、以下の4つの方法で5元を探すことができます.
5元で金を探す.
1元は3個、2元は1個で探します.
1元で1個、2元で取り戻します.
5元で1つ探します.
取り戻した金額nとFinnが現在持っているお金の種類moneyをパラメータとする必要がある場合は、Finnがn元の取り戻し方法の数を返すように解く関数を完了してください.
せいげんじょうけん
nは100000以下の自然数である.
通貨単位は100種類以下です.
すべての通貨が無限であると仮定します.
答えは大きくなるかもしれませんが、10万07の残りを返してください.
Code
class Solution {
public int solution(int n, int[] money) {
int[] dp = new int[n+1];
dp[0] = 1;
for(int m : money) {
for(int i=1 ; i<=n ; i++) {
if(i-m<0) continue;
dp[i] += dp[i-m];
}
}
return dp[n];
}
}
Commentわあ.これ.ほぼ30分でバカなことをして、回り道をしました...解き直そう.
Reference
この問題について([プログラマー]おつり(JAVA)), 我々は、より多くの情報をここで見つけました https://velog.io/@ujone/프로그래머스-거스름돈-JAVAテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol