코딩테스트 & 문제 풀이
[Python]백준_14425 : 문자열 집합
Hicecream
2023. 11. 4. 00:08
2022년 12월 8일에 작성됨
https://www.acmicpc.net/problem/14425
14425번: 문자열 집합
첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어
www.acmicpc.net
문제 분석
집합 s에 있는 문자열과 검사해야 하는 문자열을 입력받고, 집합 s에 검사할 문자열이 있으면 카운트 해준다.
소스 코드 (⭕)
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
s = set()
for _ in range(n):
s.add(input().strip()) # s 집합 입력받기
cnt = 0
for _ in range(m):
munja = input().strip() # 반복문을 통해 m개의 문자열을 확인
if munja in s: # 집합 s에 munja가 있으면 카운트
cnt += 1
print(cnt)
코드 분석
1. n과 m을 입력받고, 집합 s를 생성해준다.
2. n만큼 반복하여 집합 s에 문자열을 입력받는다.
3. m만큼 반복하여 검사할 문자열 munja를 입력받는다.
4. 만약, 집합 s안에 munja 문자열이 있다면 cnt로 카운트 해준다.
end
리스트로 해도 될 것 같은데 알고리즘 분류가 집합이라 set() 함수를 사용했다. 리스트로 풀면 어떻게 될 지 궁금해져서 풀어봤다.
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
s = []
for _ in range(n):
s.append(input().strip()) # s 집합 입력받기
cnt = 0
for _ in range(m):
munja = input().strip() # 반복문을 통해 m개의 문자열을 확인
if munja in s: # 집합 s에 munja가 있으면 카운트
cnt += 1
print(cnt)
리스트로 풀어보니 시간이 30배 이상 차이가 난다ㄷㄷ!