https://www.acmicpc.net/problem/6550
풀이 과정
- s의 문자들로 구성된 큐를 생성한다.
- t의 문자들을 왼쪽에서 오른쪽으로 순서대로 비교
- 큐의 맨 앞 요소가 t의 문자와 같다면 제거 후 다음 문자 진행
- 큐의 맨 앞 요소가 t의 문자와 같지 않다면 그냥 다음 문자 진행
- 큐가 비어있다면 부분 문자열이고, 큐가 비어있지 않다면 부분 문자열이 아닌 것으로 볼 수 있다.
소스 코드
import sys
from collections import deque
while True:
try:
s, t = input().split()
queue = deque(list(s))
for c in t:
if queue and c == queue[0]:
queue.popleft()
if queue:
print('No')
else:
print('Yes')
except:
break
'알고리즘[Python] > 백준 알고리즘' 카테고리의 다른 글
[ 14938 ] [ Dijkstra ] 서강그라운드 (0) | 2021.10.14 |
---|---|
[ 1743 ] [ BFS ] 음식물 피하기 (0) | 2021.10.13 |
[ 16401 ] [이분 탐색] 과자 나눠주기 (0) | 2021.10.09 |
[ 14653 ] 너의 이름은 (0) | 2021.10.08 |
[ 2251 ] [ BFS ] 물통 (0) | 2021.10.07 |