알고리즘

[프로그래머스] 짝지어 제거하기

hminor 2023. 6. 4. 23:31

 

# 정답 코드

def solution(s):
    stack = []
    for i in s:
        if not stack: stack.append(i)
        else:
            if stack[-1] == i: stack.pop()
            else: stack.append(i)
    return 0 if len(stack) else 1

 

# 오답 코드
# stack으로 풀지 않고 
# 리스트를 슬라이싱을 통해 계속 변경하는 방법을 사용하니
# 배열을 계속 탐색해야 하기에 시간초과 문제가 발생.

def solution(s):
    answer, s = -1, list(s)
    while s:
        flag = False
        for i in range(len(s)-1):
            if s[i] == s[i+1]:
                s[i:i+2] = ''
                flag = True
                break
        if not flag: break
    
    return 0 if len(s) else 1