엔지니어 블로그

[Leetcode] 392.Is Subsequence 본문

알고리즘

[Leetcode] 392.Is Subsequence

안기용 2025. 2. 12. 10:48


풀이

이 문제는 s가 t에 속하는지 판별하는 문제다. 단순히 속하는지 여부만 확인하는 것이 아니고, s의 문자 배열 순서가 t에서도 동일해야한다. 

무턱대고 t에 속한 s의 문자들을 지웠다가 실패를 맛봤다.

two pointer를 사용하기로 했다. i와 j를 두고 s[i] 가 t[j] 와 같다면 list에 추가한 후 s와 동일한지 확인하도록 구성했다.

 

코드

class Solution:
    def isSubsequence(self, s: str, t: str) -> bool:
        i = 0
        ans = []
        for j in range(len(t)):
            if i >= len(s):
                break
            if s[i] == t[j]:
                i += 1
                ans.append(t[j])
        if s == ''.join(ans):
            return True
        return False