Search
Duplicate

짝지어 제거하기

문제 설명 및 제한사항

아이디어 및 해결 방법

코드

def solution(s): # stack과 pointer 하나씩을 관리합니다. # stack은 지금까지 처리된 문자열, pointer는 해당 문자열의 맨 뒤 문자의 인덱스를 나타냅니다. stack, ptr = [], -1 # 문자열을 하나씩 읽어가면서, stack에 추가합니다. for char in s: # 다만, 추가하기 전에, 지금 stack의 맨 뒤 문자와 해당 문자가 같으면 # stack에서 하나를 pop하고, pointer는 한칸 뒤로 무릅니다. # 그리고 다음 문자를 확인하러 넘어갑니다. if ptr != -1 and stack[ptr] == char: stack.pop() ptr -= 1 continue # 만약 문자열 짝짓기가 안 됐다면, stack에 해당 문자를 추가하고 # ptr를 하나 앞으로 전진합니다. stack.append(char) ptr += 1 # stack의 크기가 0이어야 수행 가능입니다. return int(len(stack) == 0)
Python
복사

출처

프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges