Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- python3
- 다이나믹프로그래밍
- 트리를사용한집합과맵
- 코딩테스트
- 브루트포스 알고리즘
- 자료구조
- 백준알고리즘
- programmers
- 그래프탐색
- swift
- 너비우선탐색
- 큐
- Mac
- 스택
- 알고리즘
- 프로그래머스
- 깊이우선탐색
- 그래프이론
- 정렬
- 구현
- Xcode
- 누적 합
- 문자열
- 두 포인터
- 파이썬
- Python
- 해시를사용한집합과맵
- 그리디알고리즘
- 백준
- BOJ
Archives
- Today
- Total
Coding Cantabile
[BOJ] #14425_문자열 집합(Python3, 파이썬) 본문
본 게시글은 백준 저지 알고리즘 문제를 '파이썬, Python3' 언어로 풀이한 내용을 주관적으로 정리하였으며, 내용과 관련된 코드리뷰 및 피드백 환영합니다.
티어
Silver I
문제
총 N개의 문자열로 이루어진 집합 S가 주어진다.
입력으로 주어지는 M개의 문자열 중에서 집합 S에 포함되어 있는 것이 총 몇 개인지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다.
다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다.
다음 M개의 줄에는 검사해야 하는 문자열들이 주어진다.
입력으로 주어지는 문자열은 알파벳 소문자로만 이루어져 있으며, 길이는 500을 넘지 않는다.
집합 S에 같은 문자열이 여러 번 주어지는 경우는 없다.
출력
첫째 줄에 M개의 문자열 중에 총 몇 개가 집합 S에 포함되어 있는지 출력한다.
예제 입력 및 출력 1
5 11
baekjoononlinejudge
startlink
codeplus
sundaycoding
codingsh
baekjoon
codeplus
codeminus
startlink
starlink
sundaycoding
codingsh
codinghs
sondaycoding
startrink
icerink
4
풀이
import sys
input = sys.stdin.readline
N, M = map(int, input().split())
s1 = [input().rstrip() for _ in range(N)]
s2 = [input().rstrip() for _ in range(M)]
cnt = 0
for str in s2:
if str in s1:
cnt += 1
print(cnt)
s2를 받는 반복문 내에 s1의 값이 s2와 같냐는 반복문과 조건문을 함사용하니 시간초과가 발생하였다. 그래서 s2를 받는 for문을 따로 작성해주고, s2의 값이 s1과 같은지 여부를 묻는 구문을 따로 작성해주니 바로 통과하였다.
문제 자체는 그냥 존재 여부를 물어보는 문제이기 때문에 cnt 변수를 증가해주기만 하면 되서 어렵진 않았다.

'Coding Test > BOJ' 카테고리의 다른 글
| [BOJ] #7785_회사에 있는 사람(Python3, 파이썬) (0) | 2022.12.05 |
|---|---|
| [BOJ] #2504_괄호의 값(Python3, 파이썬) (0) | 2022.12.04 |
| [BOJ] #11286_절댓값 힙(Python3, 파이썬) (0) | 2022.12.02 |
| [BOJ] #17219_비밀번호 찾기(Python3, 파이썬) (0) | 2022.12.01 |
| [BOJ] #5397_키로거(파이썬, Python3) (0) | 2022.11.29 |