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
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 후 2중 for문을 이용해서 전체 비교 -> 시간 복잡도 에러 발생 (해결 방법 X)
Sort 후 바로 앞만 확인, 이미 문자열로 정렬되어 있는 상태이기 때문에 바로 앞만 비교 하면 됨
HashMap을 이용
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