문제
코드
My answer
import sys
input=sys.stdin.readline
n=int(input())
a=dict()
for i in range(n):
tmp=input().rstrip()
if(tmp not in a):a[tmp]=1
else:a[tmp]+=1
for i in range(n-1):
b=input().rstrip()
a[b]-=1
if(a[b]==0):
del a[b]
print(*a)
Another answer
import sys
n = int(sys.stdin.readline())
dic = {}
for i in range(2*n-1):
name = sys.stdin.readline().strip()
if name in dic:
dic[name] += 1
else:
dic[name] = 0
for i in dic:
if dic[i] % 2 == 0:
print(i)
break
풀이
우선 맨처음에 내코드에서 딕셔너리를 리스트로만 바꾼형태로 짰었는데, 시간초과가 떴다. 굳이 딕셔너리로 할 필요가 없는데 왜 번거롭게 그래야하지 생각하다가 바로 전날 풀었던 문제에서 똑같은 함수라도 자료형에 따라 시간복잡도가 다르다는 사실이 기억나서 리스트말고 딕셔너리로 구현했더니 바로 풀렸다...이제 함수뿐만 아니라 자료형까지 신경써야한다니... 이건 알고리즘을 더 열심히 공부해야겠다는 생각이 들었다.. 아무리 문제를 잘 풀어도 이렇게 자료형에 따라 맞냐 틀리냐 문제는 알고리즘을 몰랐다면 절대 풀 수 없기 때문이다.....
728x90
반응형
'코딩테스트 > 백준[Python]' 카테고리의 다른 글
[Python] 백준 #1966- 프린터 큐 (0) | 2022.01.23 |
---|---|
[Python] 백준 #2776- 암기왕 (0) | 2022.01.23 |
[Python] 백준 #14425- 문자열집합 (0) | 2022.01.22 |
[Python] 백준 #1620- 나는야 포켓몬 마스터 이다솜 (0) | 2022.01.21 |
[Python] 백준 #2346- 풍선 터뜨리기 (0) | 2022.01.21 |