[イコール]グリディ-冒険者公会
🔔 質問する
ある村にはN人の冒険者がいる.冒険者組合はN人の冒険者を対象に「恐怖度」を測定したが、「恐怖度」の高い冒険者は恐怖を感じやすく、危険な状況では正しく対応できなかった.冒険者組合の職人である東彬は、安全に冒険者グループを結成するため、恐怖度Xの冒険者はX人以上の冒険者グループに参加しなければ旅行を出発できないと規定している.東彬は最大何人の冒険者グループを作成できるか知りたい.東彬にN名の冒険者に関する情報を提供した場合、旅行可能なグループ数の最高値を求めるプログラムを作成してください.△何人かの冒険者が村に残ることができるので、すべての冒険者を特定のグループに置く必要はありません.
入力
しゅつりょく
🎯 解答方法
まず恐怖度を基準に昇順で並べ替えました.その後、恐怖度が最も低い冒険者から一つ一つ確認し、グループ内の冒険者数を算出することができる.現在のグループの冒険者数が現在確認されている恐怖度以上であれば、グループ化できます.すなわち、「現在の組合せに含まれる冒険者の数」が「現在確認された恐怖度」以上である場合、これを組合せに設定することができる.
💻 Pythonコード
n = int(input())
values = sorted(list(map(int, input().split())))
group = 0 # 결성된 그룹 수
temp = 0 # 현재 멤버 수
for i in values:
temp += 1
if temp >= i:
group += 1
temp = 0
print(group)
Reference
この問題について([イコール]グリディ-冒険者公会), 我々は、より多くの情報をここで見つけました https://velog.io/@subinmun1997/이코테-그리디-모험가-길드テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol