여니의 취준 준비/코딩테스트 (Python)

[n10546] 배부른 마라토너 in python

여니's 2021. 11. 4. 19:24


이렇게 하니까 시간초과 ㅠ ㅠ 

리스트의 경우에는 시간이 자료의 크기에 비례하여 늘어나지만

딕셔너리는 거의 일정한 시간으로 탐색을 완료한다.

 

따라서 리스트 대신 딕셔너리로 다시 구현을 해보았다.

n=int(input())
array=[]

for _ in range(2*n-1):
    person=input()
    if person not in array:
        array.append(person)
    else:
        array.remove(person)
print(*array)

person이 dic에 이미 이름을 올린 경우?

-> dic에서 정보를 지운다 (마라톤 완주 성공한 사람이니까)

dic에는 완주를 못한 사람만 남아있다.

 

dic={key:value}

key가 dic에 있는 걸 알고자한다면

if key in dic 조건문으로 확인 가능

 

 

 

person이 dic에 이름이 없다면?

-> dic에 이름을 추가해준다.

 

 

import sys

n= int(sys.stdin.readline())
dic={}

for _ in range(2 * n - 1):
    person = sys.stdin.readline().rstrip()
    if person not in dic:
        dic[person]=1
    else:
        del dic[person]
print(*dic)