본문 바로가기
백준

[백준] 14425번 : 문자열 집합 - 파이썬(Pyton) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 11. 19.
728x90
반응형

 

 

14425번: 문자열 집합

첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다.  다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어

www.acmicpc.net

 

1. 문제 설명

2. 풀이과정

해당 문제는 집합 S에 있는 문자열을 입력받아 저장하고, 검사할 문자열을 입력받으며 집합 S에 포함되어 있는지 확인하는 문제이다.

집합 S에 있는 문자열을 딕셔너리에 저장하여 검사할 문자열을 입력받아 확인할 때 더 빠른 시간으로 확인한다.

 

  1. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
  2. 집합 S의 문자열 개수와 검사해야 할 문자열 개수를 입력받는다. N, M = map(int, sys.stdin.readline().split())
  3. 집합 S의 문자열을 저장할 딕셔너리를 생성한다. d = {}
  4. 집합 S의 문자열 개수만큼 반복하며 for _ in range(N)
  5. 문자열을 입력받아 S = sys.stdin.readline().rstrip()
  6. 딕셔너리에 저장한다. d[S] = True
  7. 집합 S에 포함된 문자열의 개수를 저장해 줄 변수를 생성하고 초기화한다. count = 0
  8. 검사해야 할 문자열의 개수만큼 반복하며 for _ in range(M)
  9. 검사할 문자열을 입력받고 S = sys.stdin.readline().rstrip()
  10. 만약 해당 문자열이 집합 S에 있으면 if (S in d)
  11. 문자열의 개수를 증가시킨다. count += 1
  12. 검사가 모두 끝났으면 집합 S에 포함된 문자열의 개수를 출력한다. print(count)
반응형

3. 소스코드

import sys

N, M = map(int, sys.stdin.readline().split())

d = {}
for _ in range(N):
    S = sys.stdin.readline().rstrip()
    d[S] = True

count = 0
for _ in range(M):
    S = sys.stdin.readline().rstrip()
    if (S in d):
        count += 1
        
print(count)
728x90
반응형