[グリディ]白駿5585お釣り|パイソン草
質問リンク https://www.acmicpc.net/problem/5585
ある店が1000円札で買い物をすると言ったとき、おつりが一番少ないという問題がありました.
得られる小銭単位は500,100,50,105,1の計6個である.
例えば、750円の買い物をすると、250円がお釣りになり、250円が100円の2つ、50円の1つで、合計3つの小銭があり、出力3で正解が得られます.
この問題をよく検討すれば、最大単位の小銭でお釣りをする場合、小銭の個数は最小になります.ですから、500円からいくつか、残りのお金は100円などという論理をコードで書けばいいのですが、これは簡単な問題です.
初めて作成したコードはこうです.
1.問題の説明
ある店が1000円札で買い物をすると言ったとき、おつりが一番少ないという問題がありました.
得られる小銭単位は500,100,50,105,1の計6個である.
例えば、750円の買い物をすると、250円がお釣りになり、250円が100円の2つ、50円の1つで、合計3つの小銭があり、出力3で正解が得られます.
2.問題を解く
この問題をよく検討すれば、最大単位の小銭でお釣りをする場合、小銭の個数は最小になります.ですから、500円からいくつか、残りのお金は100円などという論理をコードで書けばいいのですが、これは簡単な問題です.
初めて作成したコードはこうです.
# total_pay : 물건의 총 금액
# remain_money : 1000엔에서 뺀 남은 금액
# ans : 정답을 저장할 변수
total_pay = int(input())
remain_money = 1000-total_pay
ans = 0
ans += remain_money // 500
remain_money = remain_money % 500
ans += remain_money // 100
remain_money = remain_money % 100
ans += remain_money // 50
remain_money = remain_money % 50
ans += remain_money // 10
remain_money = remain_money % 10
ans += remain_money // 5
remain_money = remain_money % 5
ans += remain_money // 1
remain_money = remain_money % 1
print(ans)
思いついたことを書いて、Pythonに詳しくなくて、コードを見たくありませんか?ステータスです.他人のコードを見て、簡単に編むことができます.# total_pay : 물건의 총 금액
# remain_money : 1000엔에서 뺀 남은 금액
total_pay = int(input())
remain_money = 1000-total_pay
a = remain_money//500 # 500엔으로 낼 수 있는 갯수 저장
b = remain_money%500//100 # 500엔을 다 내고 난 후 100엔으로 낼 수 있는 갯수 저장
c = remain_money%100//50 # 100엔을 다 내고 난 후 50엔으로 낼 수 있는 갯수 저장
d = remain_money%50//10 # 반복
e = remain_money%10//5
f = remain_money%5
print(a+b+c+d+e+f)
論理的な意味はやや異なるが、この問題の特徴により、必要な50円の数を求める場合、500円の残りまたは100円の残りを意味し、同様の結果となる.Reference
この問題について([グリディ]白駿5585お釣り|パイソン草), 我々は、より多くの情報をここで見つけました https://velog.io/@sqk8657/백준-5585-거스름돈-풀이-그리디-알고리즘テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol