새소식

⌨️ Algorithms/백준

[Python] 백준 14425번_문자열 집합

2023. 3. 3. 21:06

  • -

https://www.acmicpc.net/problem/14425

 

14425번: 문자열 집합

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

www.acmicpc.net

 

  • 총 N개의 문자열로 이루어진 집합 S가 주어짐
  • 입력으로 주어지는 M개의 문자열 중에서 집합 S에 포함되어 있는 것이 총 몇 개인지 구하기
  • 입력
    • 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어짐
    • 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어짐
    • 다음 M개의 줄에는 검사해야 하는 문자열들이 주어짐
    • 입력으로 주어지는 문자열은 알파벳 소문자로만 이루어져 있으며, 길이는 500을 넘지 않음
    • 집합 S에 같은 문자열이 여러 번 주어지는 경우는 없음
  • 출력
    • 첫째 줄에 M개의 문자열 중에 총 몇 개가 집합 S에 포함되어 있는지 출력
  • 시간 제한: 2초
  • 메모리 제한: 1536 MB

 

"""
입출력 예시)

5 11
baekjoononlinejudge
startlink
codeplus
sundaycoding
codingsh
baekjoon
codeplus
codeminus
startlink
starlink
sundaycoding
codingsh
codinghs
sondaycoding
startrink
icerink
            -> 4
"""

 

 

## 의사코드 ##

# s = set() # 집합 S

# n개의 줄에 집합 S에 포함되는 문자열
# for _ in range(n):
#     s.add(input()) # add() -> set()에 하나의 원소 추가

# m개의 줄에 검사해야 하는 문자열
# cnt = 0 
# for _ in range(m):
#     word = input() # 검사할 문자열 
#     # 문자열이 집합 S에 있는 경우, cnt + 1
#     if word in s:
#         cnt += 1

 

 

 

통과한 코드

 

n, m = map(int,input().split())

# 집합 S
s = set() 
for _ in range(n):
    s.add(input()) 

# 집합 S에 포함되어 있는 문자열의 개수
cnt = 0 
for _ in range(m):
    word = input() # 검사할 문자열 
    # 문자열이 집합 S에 있는 경우, cnt + 1
    if word in s:
        cnt += 1
print(cnt)

 

 

  •  set()
    • set.add() : 1개의 원소 추가
    • set.update([]) : 여러 개의 원소 추가

 

 

 

 

 

참고)

 

https://wikidocs.net/1015

 

02-6 집합 자료형

`[추천 동영상 강의]` : [https://www.youtube.com/watch?v=nsAtYHnovUA](https://www.youtube.com/watch?v=nsAtY…

wikidocs.net

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다!