[백준] 6550번 - 부분 문자열 Python

Tuna·2022년 2월 4일
1

Greedy

목록 보기
2/22

문제


2개의 문자열 s와 t가 주어졌을 때 s가 t의 부분 문자열인지 판단하는 프로그램을 작성하라. 부분 문자열을 가지고 있는지 판단하는 방법은 t에서 몇 개의 문자를 제거하고 이를 순서를 바꾸지 않고 합쳤을 경우 s가 되는 경우를 이야기 한다.

입력


입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문자열 s 와 t가 빈칸을 사이에 두고 들어온다. s와 t의 길이는 10만을 넘지 않는다.

출력


입력된 s와 t의 순서대로 s가 t의 부분 문자열인 경우 Yes라 출력하고 아닐 경우 No라고 출력한다.

예제 입력 1


sequence subsequence
person compression
VERDI vivaVittorioEmanueleReDiItalia
caseDoesMatter CaseDoesMatter

예제 출력 1


Yes
No
Yes
No

풀이


import sys
input = sys.stdin.readline

while True:
    ss = input().rstrip()
    if not ss:
        break
    s, t = ss.split()
    flag = 0
    idx = 0
    
    for i in range(len(t)):
        if t[i] == s[idx]:
            idx+=1
            if idx == len(s):
                flag = 1
                break
    
    if flag == 1:
        print('Yes')
    else:
        print('No')

정리


  • 입력받은 문자열 t를 순회하면서 입력받은 문자열 s[idx]와 같으면 idx를 1씩 증가시킨다. 그리고 idxs의 길이와 같다면 for문을 종료시키고 출력한다.
profile
BE 개발자가 되기 위해 노력하는 사람

0개의 댓글