https://www.acmicpc.net/problem/1543
1543번: 문서 검색
세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한
www.acmicpc.net
import sys
st = sys.stdin.readline().rstrip()
find = sys.stdin.readline().rstrip()
stack = []
cnt = 0
for i in st:
stack.append(i) # stack에 문자열 하나씩 넣어주고
if i == find[-1]: # 끝 문자열과 들어오는 문자열이 같다면
if "".join(stack[-len(find):]) == find: # 끝기준으로 find 길이만큼 비교
stack = [] # 스택 비워주기
cnt += 1 # 비교 문자열이 한 번 검색된 거므로 답 +1
print(cnt)
- 접근방식: 스택에 한 글자씩 넣다가 찾는 문자열의 끝글자가 들어 왔을 때 찾는 문자열 길이만큼 꺼내 비교
- 느낀점: 문자열을 stack에 넣어 비교하는 문제가 꽤 있으므로 익혀두기
'자료구조, 알고리즘 > 문자열' 카테고리의 다른 글
[백준] 9012 괄호(문자열) - Python (0) | 2023.04.20 |
---|---|
[백준] 9935 문자열폭발(문자열) - Python (0) | 2023.04.10 |