백준 1764번: 듣보잡

danbibibi·2021년 11월 12일
0

문제

문제 바로가기> 백준 1764번: 듣보잡

풀이

python의 set의 교집합 연산을(&)을 이용하면 문제를 쉽게 해결할 수 있다.

def solution():
    import sys
    input = sys.stdin.readline
    n, m = map(int, input().split())
    heard, saw = [], []
    for i in range(n): heard.append(input().rstrip())
    for i in range(m): saw.append(input().rstrip())
    heard, saw = set(heard), set(saw)
    ans = list(heard & saw)
    ans.sort()
    print(len(ans))
    for i in range(len(ans)): print(ans[i])
solution()

코드개선

다음과 같이 sys.stdin.read().splitlines()을 사용하여 입력을 한번에 받은 후 n개 까지,이후 두개 로 나누어서 set으로 만들어줘도 된다.

def solution():
    import sys
    n, m = map(int, sys.stdin.readline().split())
    li = sys.stdin.read().splitlines()
    heard, saw = set(li[:n]), set(li[n:])
    ans = list(heard & saw)
    ans.sort()
    print(len(ans))
    for i in range(len(ans)): print(ans[i])
solution()
profile
블로그 이전) https://danbibibi.tistory.com

0개의 댓글