LV 2: 짝지어 제거하기

ewillwin·2023년 8월 28일
0

문제 링크

LV 2: 짝지어 제거하기


구현 방식

  • 처음 접근했을 땐 while문을 돌면서 처리해줘야하나? 싶었지만 문자열의 길이가 1,000,000 이하인 관계로 웬만하면 O(n)안에 처리를 해줘야한다

  • stack을 이용하면 1중 for문으로 해결할 수 있는데 조건문을 분기할 때 조금 복잡하게 생각해서 WA를 몇 번 받았다

    • 그냥 단순하게 index 0부터 끝까지 순회를 하면서 after_s에 s[i]값을 모두 append 해준다
    • 만약 쌍이 존재하는 경우 (len(after_s) >= 2 and after_s[-1] == after_s[-2]) pop을 두번 수행해준다

코드

def solution(s):

    s = list(s)
    
    after_s = []
    for i in range(len(s)):
        after_s.append(s[i])
        if len(after_s) >= 2:
            if after_s[-1] == after_s[-2]:
                after_s.pop(); after_s.pop()
            
    if after_s: return 0
    else: return 1
profile
💼 Software Engineer @ LG Electronics | 🎓 SungKyunKwan Univ. CSE

0개의 댓글