728x90
반응형
구현 언어: 파이썬
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
listen_dic = {}
exist = []
count = 0
for i in range(n):
listen_dic[input().strip()] = ''
for i in range(m):
name = input().strip()
try:
_ = listen_dic[name]
exist.append(name)
count += 1
except:
continue
print(count)
for item in exist:
print(item)
이렇게 풀었는데 18%에서 오답 처리가 됐다.
아직은 원인을 찾지 못하겠다.
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
listen = [input().strip() for i in range(n)]
see = [input().strip() for i in range(m)]
answer = list(set(listen) & set(see))
print(len(answer))
for item in sorted(answer):
print(item)
그래서 블로그를 보다 보니 집합으로 푸는 방법들이 많았다.
집합으로는 한 번도 해 본 적이 없었는데, 도전해보았다.
정답 처리 되었다.
그런데 보니 마지막 answer 배열에서 sorted로 출력해야 함을 발견했다.
그래서 딕셔너리로 구현했던 코드에 sorted를 추가해보았다.
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
listen_dic = {}
exist = []
count = 0
for i in range(n):
listen_dic[input().strip()] = ''
for i in range(m):
name = input().strip()
try:
_ = listen_dic[name]
exist.append(name)
count += 1
except:
continue
print(count)
for item in sorted(exist):
print(item)
마찬가지로 정답 처리 되었다.
하지만 코드가 집합으로 푼 게 더 깔끔하니 이런 문제는 앞으로 집합으로 풀어야겠다.
시도 횟수: 3
구현 포인트:
겹치는 값을 찾아야 할 때는 집합으로!
728x90
반응형
'Archive > BOJ' 카테고리의 다른 글
백준 18115번: 카드 놓기 (0) | 2021.04.09 |
---|---|
백준 1003번: 피보나치 함수 (0) | 2021.03.14 |
백준 1620번: 나는야 포켓몬 마스터 이다솜 (0) | 2021.03.13 |
백준 11651번: 좌표 정렬하기 2 (0) | 2021.02.18 |
백준 10989번: 수 정렬하기 3 (0) | 2021.02.18 |