백준(Python) 풀이/그리디 알고리즘

백준(Python) 6550번 부분 문자열 풀이

개발윗미 2021. 12. 15. 09:29

Python으로 구현한 6550번 부분 문자열 문제 풀이입니다.

 

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

 

6550번: 부분 문자열

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

www.acmicpc.net


while True :
  try :
    s, t = input().split()
    
    value = 0
    flag = 0
    for i in range(len(t)) :
      if t[i] == s[value] :
        value += 1
        if value == len(s) :
          flag = 1
          break

    if flag == 1 :
      print('Yes')
    else :
      print('No')

  except :
    break

 

1. 입력받은 t의 문자열 길이만큼 범위를 지정하여 반복문을 수행하고, 내부에서는 조건문을 통해 현재 확인하고 있는

 

   문자열 t의 문자와 지정된 s의 문자를 비교하여 같다면 s의 인덱스 값을 1 증가시킨다.

 

2. 만약 value의 값과 s의 문자열 길이가 같을 경우 부분 문자열에 해당되므로 flag를 1로 갱신한다.

 

3. 반복문이 종료되면 flag 값을 확인하고, 그 값이 1이면 'Yes'를, 0이라면 'No'를 출력한다.