コーディングテスト練習-失敗率
9858 ワード
コーディングテスト練習-失敗率
解関数を完了し、失敗率の高いステージからステージ番号を含む配列を降順に返します.
37.0/100.0:ランタイムエラーとタイムアウト
O(n)O(n)+O(n)O(n)*O(n) => O(n^3)
O(n)*O(n) => O(n^2)
count時間複雑度:O(n)->完全ナビゲーション
解けないので質問ㅠㅠㅠㅠ=>チャレンジステージを例外処理する人数が0になる場合を参考に
#異常処理が正しくない場合、テストケースでランタイムエラーが発生します!!
解関数を完了し、失敗率の高いステージからステージ番号を含む配列を降順に返します.
#エラーコード
37.0/100.0:ランタイムエラーとタイムアウト
O(n)O(n)+O(n)O(n)*O(n) => O(n^3)
def solution(N, stages):
fail_percent = dict()
failed = 0
people_len = len(stages)
for i in range(1, N+1):
for j in range(people_len):
if stages[j] <= i:
failed += 1
fail_percent[i] = failed/people_len
people_len -= failed
for k in range(failed):
if i in stages:
stages.remove(i)
failed = 0
new_dic = sorted(fail_percent.items(), key=lambda x:x[1], reverse=True)
return list(dict(new_dic).keys())
70.4/100:運転時エラーO(n)*O(n) => O(n^2)
count時間複雑度:O(n)->完全ナビゲーション
def solution(N, stages):
fail_percent = dict()
users = len(stages)
for i in range(1, N+1):
count = stages.count(i)
fail_percent[i] = count / users
users -= count
new_dic = sorted(fail_percent.items(), key=lambda x:x[1], reverse=True)
return list(dict(new_dic).keys())
#正解コード
解けないので質問ㅠㅠㅠㅠ=>チャレンジステージを例外処理する人数が0になる場合を参考に
#異常処理が正しくない場合、テストケースでランタイムエラーが発生します!!
def solution(N, stages):
fail_percent = dict()
users = len(stages)
for i in range(1, N+1):
if users == 0: # 도전자가 0이 되는 경우
fail_percent[i] = 0
continue
count = stages.count(i)
fail_percent[i] = count / users
users -= count
new_dic = sorted(fail_percent.items(), key=lambda x:x[1], reverse=True)
return list(dict(new_dic).keys())
Reference
この問題について(コーディングテスト練習-失敗率), 我々は、より多くの情報をここで見つけました https://velog.io/@ghenmaru/코딩테스트-연습-실패율テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol