[PART3] 4. 作成できない金額100
3595 ワード
異なるアルゴリズムタイプのエクスポート問題:Griddy
💻 4.作成できない金額
難易度🖤🤍🤍 | プール30分|タイムアウト1秒|メモリ制限128 MB|K大会出力
📌2021、01/03コード作成
# 입력
n = int(input())
data = list(map(int, input().split()))
data.sort(reverse=True) # 내림차순으로 정렬
# 알고리즘
ret = 1 # 1로 초기화
stop = False
while not stop:
temp = ret # temp에 ret 값 할당
# 내림차순으로 정렬된 data 순회하면서 ret값 만들 수 있는지 확인
for x in data:
if temp//x > 0: # 몫이 0보다 크면
temp -= x # 그 값을 temp에서 뺀다
else:
continue
# temp가 0이라면 ret값 만들 수 있다는 것
if temp == 0:
ret += 1 # 다음 테스트를 위해 + 1
else:
stop = True
# 출력
print(ret)
💭 アイデア
アルゴリズムが作られていますが、なぜか分かりません…!
🤓 問題の説明
01
これはソートされた階調アルゴリズムで解決できる問題である.問題を正しく解決する方法を考えるには、十分な考慮が必要であるため、読者がグレディアルゴリズムに慣れていないと、問題を解決するのは難しい.
問題解決の構想は以下の通りである.コインに関する情報が得られると、通貨単位を基準に昇順に並べられます.次に、1から順に特定の金額を作成できるかどうかを確認します.
1からtarget-1までのすべての金額を作成できると仮定します.私たちは通貨単位が小さい順にコインを確認し、現在確認しているコインでtarget金額を作ることができるかどうかを確認するだけです.target金額を作成できる場合は、target値を更新(増加)する方法を使用します.
基本的に、グリディアルゴリズムは、現在の状態で毎回最もよく見えるアルゴリズムだけを選択するアルゴリズムです.具体的には、現在のステータスは「1からtarget-1までのすべての金額を作成できます」です.この場合、毎回targetを作成できる金額(現在確認されている硬貨単位がtargetを下回っているか)をチェックします.対応する金額を作成できる場合は、targetの値を更新(現在のステータスを更新)するだけです.
02
例えばコインが3つありますが、各通貨の単位は1、2、3です.
では、1から6までのすべての金額を生成することができます.
# 입력
n = int(input())
data = list(map(int, input().split()))
data.sort(reverse=True) # 내림차순으로 정렬
# 알고리즘
ret = 1 # 1로 초기화
stop = False
while not stop:
temp = ret # temp에 ret 값 할당
# 내림차순으로 정렬된 data 순회하면서 ret값 만들 수 있는지 확인
for x in data:
if temp//x > 0: # 몫이 0보다 크면
temp -= x # 그 값을 temp에서 뺀다
else:
continue
# temp가 0이라면 ret값 만들 수 있다는 것
if temp == 0:
ret += 1 # 다음 테스트를 위해 + 1
else:
stop = True
# 출력
print(ret)
03
別の例を見てみましょう.今回は段階的に問題解決の過程を紹介します.コインが4つある場合は、通貨単位はそれぞれ1,2,3,8と言ってみましょう.
04
グリディのアルゴリズムタイプを何度も解いてみると解法が思い浮かぶのですが、グリディのアルゴリズムが熟練していないと分かりにくい問題です.そこで、この問題が解決しにくい場合は、Griddyアルゴリズムタイプの問題に触れてみましょう.
🤓 回答例
n = int(input())
data = list(map(int, input().split()))
data.sort()
target = 1
for x in data:
# 만들 수 없는 금액을 찾았을 때 반복 종료
if target < x:
break
target += x
# 만들 수 없는 금액 출력
print(target)
🤔 コメント
Reference
この問題について([PART3] 4. 作成できない金額100), 我々は、より多くの情報をここで見つけました https://velog.io/@eastgloss0330/PART3-4.-만들-수-없는-금액テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol