[Programmers]Hash-完走していない選手(Python)
ソース
多くのマラソン選手がマラソンに参加した.1人の選手を除いて、すべての選手がマラソンを完走した.
マラソンに出場する選手の名前と完走した選手の名前の並びが完成したら、完走していない選手の名前を返す解決関数を書いてください.
マラソンに出場する選手は1人以上10万人以下. 完了長さは参加者長1より小さい. 参加者の名前は20文字を超えない.
参加者は同名であってもよい.
participantcompletionreturn["leo", "kiki", "eden"]["eden", "kiki"]"leo"["marina", "josipa", "nikola", "vinko", "filipa"]["josipa", "filipa", "marina", "nikola"]"vinko"["mislav", "stanko", "mislav", "ana"]["stanko", "ana", "mislav"]"mislav"
例1
「leo」は参加者名簿に載っているが、フルコースを走る者名簿には載っていないため、フルコースを完走できなかった.
例2
「vinko」は参加者名簿に載っていたが、完走者名簿に載っていなかったため完走できなかった.
例#3
「誤導」は参加者リストに2人いたが、完走者リストには1人しかいなかったため、1人は完走しなかった.
上のコードと同じように、ディックシャーナを外すこともできます.
Hash:フルコース未走の選手[Lv 1]
問題の説明
多くのマラソン選手がマラソンに参加した.1人の選手を除いて、すべての選手がマラソンを完走した.
マラソンに出場する選手の名前と完走した選手の名前の並びが完成したら、完走していない選手の名前を返す解決関数を書いてください.
せいげんじょうけん
参加者は同名であってもよい.
I/O例
participantcompletionreturn["leo", "kiki", "eden"]["eden", "kiki"]"leo"["marina", "josipa", "nikola", "vinko", "filipa"]["josipa", "filipa", "marina", "nikola"]"vinko"["mislav", "stanko", "mislav", "ana"]["stanko", "ana", "mislav"]"mislav"
I/O例説明
例1
「leo」は参加者名簿に載っているが、フルコースを走る者名簿には載っていないため、フルコースを完走できなかった.
例2
「vinko」は参加者名簿に載っていたが、完走者名簿に載っていなかったため完走できなかった.
例#3
「誤導」は参加者リストに2人いたが、完走者リストには1人しかいなかったため、1人は完走しなかった.
Solution
説明する
def solution(participant, completion):
answer = ''
dic = dict()
for p in participant:
dic[p] = dic.get(p, 0) + 1
for c in completion:
dic[c] -= 1
for p in participant:
if dic[p] == 1:
answer = p
return answer
結果
Best Code
import collections
def solution(participant, completion):
answer = collections.Counter(participant) - collections.Counter(completion)
return list(answer.keys())[0]
collections.カウンタを使用して、各オブジェクトの数を知ることができます.上のコードと同じように、ディックシャーナを外すこともできます.
Reference
この問題について([Programmers]Hash-完走していない選手(Python)), 我々は、より多くの情報をここで見つけました https://velog.io/@deannn/Programmers-Hash-완주하지-못한-선수-Pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol