アルゴリズム問題の解-ハッシュ
プログラマ
完走していない選手
ex) {eden, leo, kiki} {eden, kiki}
def solution1(participant, completion):
participant.sort()
completion.sort()
answer = ''
for i in range(len(completion)):
if participant[i] != completion[i]:
answer = participant[i]
break;
else:
answer = participant[len(participant) - 1]
# print(answer)
return answer
{eden=2, leo=1, kiki=1}
{eden=1, leo=0, kiki=0}
def solution2(participant, completion):
answer = ''
data = dict()
for i in participant:
if i in data.keys():
v = data[i]
data[i] = v + 1
else:
data[i] = 1
for i in completion:
v = data[i]
data[i] = v - 1
for k, v in data.items():
if v != 0:
answer = k
return answer
電話番号リスト
Sort後のダブルfor文による全面比較->時間複雑度エラー(解決方法X)
文字列にソートされているため、起動後すぐに前に比較するだけです.前に比較するだけです.
HashMapの使用
誰もが
1
11
119
1195
...
データがdictにあるかどうかをチェックし、あればfalseですが、自分は除外します.
def solution(phone_book):
answer = True
# 방법 1 (시간 초과)
# phone_book.sort()
# for i in range(len(phone_book)):
# for j in range( i +1 ,len(phone_book)):
# if phone_book[j].startswith(phone_book[i]):
# return False
# 방법 2 (sort를 이용하여 바로 앞만 확인)
# phone_book.sort()
# for i in range(len(phone_book)-1):
# if phone_book[i+1].startswith(phone_book[i]):
# answer=False
# 방법 3. (해시를 이용)
data = dict()
for i in phone_book:
data[i] = 1
for num in phone_book:
temp = ""
for j in num:
temp += j
if temp in phone_book and temp != num:
answer = False
return answer
Reference
この問題について(アルゴリズム問題の解-ハッシュ), 我々は、より多くの情報をここで見つけました https://velog.io/@sds1vrk/1001-TILテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol