[우아한테크코스] 7월 4일 TIL

less than 1 minute read

[Algorithm] 짝지어 제거하기

처음에는 문자열이 0이 될때까지 반복문 돌면서 같은거 있으면 앞뒤 붙여서 문자열 새로 만들고 하려 했다.
그치만 이러면 너무 비효율적이었다.

그래서 생각한 방법은 다음과 같다.

  1. 문자열을 돌면서 문자열이 비어있거나, 마지막 문자열과 같지 않으면 리스트에 추가한다.
  2. 끝까지 돌았을 때 리스트가 비어있으면 짝지어 제거하기가 가능, 아니면 안가능인거다.

여기서 새로 안 문법은 pop이다.
list.pop()은 마지막 요소를 제거하는 것이다.

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