파이썬 백준 1764번
실버 4
https://www.acmicpc.net/problem/1764
문제 보기
분류: 자료 구조, 문자열, 정렬, 해시를 사용한 집합과 맵
코드 보기
import sys
# sys.stdin.readline을 사용하여 한 번에 여러 줄을 읽고 대용량 입력을 빠르게 처리
inputdata = sys.stdin.readline
# 입력 데이터를 받아서 딕셔너리로 저장하는 함수
def recordInputData(number):
tempGroupDict = {}
for _ in range(number):
name = inputdata().strip()
tempGroupDict[name] = True
return tempGroupDict
# 중복된 이름을 찾는 함수
def findDuplicateNames(notEvenHeard, notEvenSeen):
duplicateNames = [name for name in notEvenHeard if name in notEvenSeen]
duplicateNames.sort()
return duplicateNames
if __name__ == "__main__":
# 첫번째 그룹과 두번째 그룹의 사람 수 입력
N, M = map(int, inputdata().split())
# 두 그룹의 이름을 저장할 딕셔너리 초기화
notEvenHeard = {}
notEvenSeen = {}
# 첫번째 그룹의 이름 입력 및 저장
notEvenHeard = recordInputData(N)
# 두번째 그룹의 이름 입력 및 저장
notEvenSeen = recordInputData(M)
# 중복된 이름 찾기
duplicateNames = findDuplicateNames(notEvenHeard, notEvenSeen)
# 중복된 이름 개수와 명단 출력
print(len(duplicateNames))
for name in duplicateNames:
print(name)
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 16499 - 동일한 단어 그룹화하기 (0) | 2023.10.14 |
---|---|
[Java] 백준 풀기 9612 - Maximum Word Frequency (0) | 2023.10.13 |
[Python] 백준 풀기 7785 - 회사에 있는 사람 (0) | 2023.10.11 |
[Python] 백준 풀기 19532 - 수학은 비대면강의입니다 (0) | 2023.10.09 |
[Python] 백준 풀기 1934 - 최소공배수 (2) | 2023.10.08 |