コーディングテスト練習-シミュレーション試験(完全ナビゲーション)
16635 ワード
コードテスト練習-模擬試験
最も多くの問題を当てた人を救う.
一番多かった人が1人だったことだけを考えれば簡単に手に入るのですが、一番多かった値はいくつもあるので表現しづらいです.そこで,検索により辞書から複数の最値を取得するlist理解方式を用いた.
構造は同じですが、列挙が使われているのが印象的でした.for文ではindexが必要なときによく使われ、毎回忘れてしまいます.今度こそはっきり覚えなければならない.
専制的.get(key):鍵の値を出力する
通常keyの値を取得するために使用されますが、get関数の出力値value値に基づいて、次のmax関数はvalue値が最も近いkeyを出力します.
dictionaryから最大値のキー値を抽出します.
max():valueの最も近い値であるキーワード「c」のみを出力します.
list completion:valueの最値にすべてのキーを出力
最大1個=>max()
最大数=>list理解
繰り返し文を使用する場合はindex値が必要な場合に使用します.
列挙()は、基本的にインデックスと要素からなるメタグループを作成します.
index値を単独で使用する場合は、2つのパラメータが受信されます.
開始インデックス値はstartオプションで置き換えることができます.
最も多くの問題を当てた人を救う.
#正解コード
一番多かった人が1人だったことだけを考えれば簡単に手に入るのですが、一番多かった値はいくつもあるので表現しづらいです.そこで,検索により辞書から複数の最値を取得するlist理解方式を用いた.
def solution(answers):
first_member = [1,2,3,4,5] # 5번마다 반복
second_member = [2,1,2,3,2,4,2,5] # 8번마다 반복
third_member = [3,3,1,1,2,2,4,4,5,5] # 10번마다 반복
answer_member = {1:0, 2:0, 3:0}
idx = 0
for i in answers:
if i == first_member[idx % 5]:
answer_member[1] += 1
if i == second_member[idx % 8]:
answer_member[2] += 1
if i == third_member[idx % 10]:
answer_member[3] += 1
idx += 1
return [k for k, v in answer_member.items() if max(answer_member.values()) == v]
#参照コード
構造は同じですが、列挙が使われているのが印象的でした.for文ではindexが必要なときによく使われ、毎回忘れてしまいます.今度こそはっきり覚えなければならない.
def solution(answers):
pattern1 = [1,2,3,4,5]
pattern2 = [2,1,2,3,2,4,2,5]
pattern3 = [3,3,1,1,2,2,4,4,5,5]
score = [0, 0, 0]
result = []
for idx, answer in enumerate(answers):
if answer == pattern1[idx%len(pattern1)]:
score[0] += 1
if answer == pattern2[idx%len(pattern2)]:
score[1] += 1
if answer == pattern3[idx%len(pattern3)]:
score[2] += 1
for idx, s in enumerate(score):
if s == max(score):
result.append(idx+1)
return result
*dictionaryでvalueが最も高いキーワードを検索
1.max()、get()関数の使用
専制的.get(key):鍵の値を出力する
通常keyの値を取得するために使用されますが、get関数の出力値value値に基づいて、次のmax関数はvalue値が最も近いkeyを出力します.
2.listで理解する
dictionaryから最大値のキー値を抽出します.
ex_dic = {'a':1, 'b':2, 'c':3, 'd':3}
print(max(ex_dic, key=ex_dic.get)) # 'c'
print([key for key, value in ex_dic.items() if max(ex_dic.values()) == value])
# ['c', 'd']
[区別]
max():valueの最も近い値であるキーワード「c」のみを出力します.
list completion:valueの最値にすべてのキーを出力
[結論]
最大1個=>max()
最大数=>list理解
*enumerate()
繰り返し文を使用する場合はindex値が必要な場合に使用します.
列挙()は、基本的にインデックスと要素からなるメタグループを作成します.
index値を単独で使用する場合は、2つのパラメータが受信されます.
開始インデックス値はstartオプションで置き換えることができます.
for entry in enumerate(['A', 'B', 'C']): # (0, 'A') (1, 'B') (2, 'C')
print(entry)
for i, letter in enumerate(['A', 'B', 'C']): # 0 A 1 B 2 C
print(i, letter)
for i, letter in enumerate(['A', 'B', 'C'], start=1): # 1 A 2 B 3 C
print(i, letter)
Reference
この問題について(コーディングテスト練習-シミュレーション試験(完全ナビゲーション)), 我々は、より多くの情報をここで見つけました https://velog.io/@ghenmaru/코딩테스트-연습-모의고사완전탐색テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol