다은하게

백준 [1764. 듣보잡] - python 본문

코딩테스트/백준

백준 [1764. 듣보잡] - python

DaaEun 2021. 4. 4. 01:40

파이썬으로 문제를 처음 풀어봐서 다소 시간이 걸렸다.

 

문제 1764번 : 듣보잡

 

1764번: 듣보잡

첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.

www.acmicpc.net

풀이 

듣도 못한 사람 n명의 no_listen 리스트와 보도 못한 사람 m명의 no_see 리스트를 서로 비교하여 같은 사람의 이름을 받는다. 이때 같은 사람의 이름을 set 자료형을 이용하여 no_all 리스트에 저장한다.

 

☞ study

▷ 런타임 에러를 막기 위해 input() 대신 sys.stdin.readline()을 사용한다.

▶ 참고 [Python 문법] 파이썬 입력 받기

 

▷ sys.stdin.readline().strip()에서 strip()는 문자열 맨 앞과 맨 끝의 공백 문자를 제거한다.

 

▷ set 자료형에서 & 기호를 이용하여 두 리스트의 교집합을 구한다. 

▶ 참고 02-6 집합 자료형

 

▷ sorted : list를 순서대로 정렬하고, 정렬된 리스트를 반환한다.

▶ 참고 15. List(리스트)(5)-리스트 정렬

 

☞ 코드

import sys

n , m = map(int, sys.stdin.readline().split())
no_listen = [sys.stdin.readline().strip() for i in range(n)]
no_see = [sys.stdin.readline().strip() for i in range(m)]

no_all = sorted(list(set(no_listen) & set(no_see)))

print(len(no_all))
for name in no_all:
    print(name)

 

☞ 결과

  • 맞았습니다!! 
  • 메모리 : 42324 KB
  • 시간 : 124 ms

'코딩테스트 > 백준' 카테고리의 다른 글

백준 [1629. 곱셈] - python  (0) 2021.04.10
백준 [14405. 피카츄] - python  (0) 2021.04.10
백준 [13305. 주유소] - python  (0) 2021.04.07
백준 [1920. 수 찾기] - python  (0) 2021.04.05
Comments