Algorithm🧶 | 失敗率
7312 ワード
https://programmers.co.kr/learn/courses/30/lessons/42889
問題の説明
スーパーゲーム開発者のオレリーは大きな悩みに陥った.彼女が作ったブランド「呉天成」は大きな成功を収めたが、最近は新しいユーザーの数が激減している.なぜなら、新しいユーザーと既存のユーザーの間の舞台の違いが大きすぎるからです.
どうすればいいか悩んだ彼女は、ゲームの時間を動的に増やして難易度を調整することにした.やはりスーパー開発者であり、ほとんどのロジックは実現しやすいが、失敗率を探す部分で危機に陥っている.オレリーの失敗率を求めるコードを完了します.失敗率は次のように定義されます. ステージに到達したがクリアされていないプレイヤー数/ステージのプレイヤー数 現在停止しているステージ番号を含む配列フェーズをパラメータとして指定した場合は、失敗率の高いステージからステージ番号を含む配列を降順に返すように、ソルバを完了します.
せいげんじょうけんステージの個数Nは1以上500以下の自然数である. 段階の長さは1以上200000以下である. 段階は、1以上N+1以下の自然数を含む. 各自然数は、ユーザが現在挑戦しているステージの番号を示す. 段、N+1は最後のステージ(Nステージ)にクリアしたユーザを表す. 同じ失敗率の舞台があれば、まず小さいサイズの舞台がいいです. プレイヤーがステージに到達しなかった場合、そのステージの失敗率は0と定義される. I/O例
Nstagesresult5[2, 1, 2, 6, 2, 4, 3, 3][3,4,2,1,5]4[4,4,4,4,4][4,1,2,3]
I/O例説明
I/O例#1
1番ステージには8人のユーザーが挑戦し、そのうち1人のユーザーはまだ通関していない.そのため、1番ステージの失敗率は以下の通り.第1期失敗率:1/82 第2ステージには7人のユーザーが挑戦し、そのうち3人のユーザーはまだ通関していない.そのため、2番目の舞台の失敗率は以下の通りです.第2期失敗率:3/7 同様に、残りの舞台の失敗率は以下の通りである.第3段階失敗率:2/4 第4期失敗率:1/ 第5期失敗率:0/1 各ステージの番号を失敗率の降順に並べます. [3,4,2,1,5] I/O例#2
すべてのユーザが最後のステージにいるため、4番目のステージの失敗率は1であり、残りのステージの失敗率は0である. [4,1,2,3] 問題を解く
問題の説明
スーパーゲーム開発者のオレリーは大きな悩みに陥った.彼女が作ったブランド「呉天成」は大きな成功を収めたが、最近は新しいユーザーの数が激減している.なぜなら、新しいユーザーと既存のユーザーの間の舞台の違いが大きすぎるからです.
どうすればいいか悩んだ彼女は、ゲームの時間を動的に増やして難易度を調整することにした.やはりスーパー開発者であり、ほとんどのロジックは実現しやすいが、失敗率を探す部分で危機に陥っている.オレリーの失敗率を求めるコードを完了します.
せいげんじょうけん
Nstagesresult5[2, 1, 2, 6, 2, 4, 3, 3][3,4,2,1,5]4[4,4,4,4,4][4,1,2,3]
I/O例説明
I/O例#1
1番ステージには8人のユーザーが挑戦し、そのうち1人のユーザーはまだ通関していない.そのため、1番ステージの失敗率は以下の通り.
すべてのユーザが最後のステージにいるため、4番目のステージの失敗率は1であり、残りのステージの失敗率は0である.
def solution(N, stages):
c = {}
user = len(stages)
for i in range(1,N+1):
c[i] = 0
if i in stages: #스테이지에 해당번째 스테이지가 있다면
cnt = stages.count(i) #스테이지마다 사람들 수
faile = cnt/user #스테이지마다 실패율
user -= cnt
if cnt != None: #c dictionary에 실패율과 인덱스 추가
c[i] = faile
c = sorted(c.items(), key=lambda x: x[1], reverse=True)
answer = []
for i in c:
answer.append(i[0])
return answer
他人を解くdef solution(N, stages):
result = {}
denominator = len(stages)
for stage in range(1, N+1):
if denominator != 0:
count = stages.count(stage)
result[stage] = count / denominator
denominator -= count
else:
result[stage] = 0
return sorted(result, key=lambda x : result[x], reverse=True)
Reference
この問題について(Algorithm🧶 | 失敗率), 我々は、より多くの情報をここで見つけました https://velog.io/@action2thefuture/Algorithm-실패율テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol