사용자 도구

사이트 도구


ps:problems:programmers:12973

짝지어 제거하기

ps
링크https://programmers.co.kr/learn/courses/30/lessons/12973
출처프로그래머스
문제 번호12973
문제명짝지어 제거하기
레벨Level 2
분류

스택

시간복잡도O(n)
인풋사이즈n<=1,000,000
사용한 언어Python
해결날짜2022/01/04

풀이

  • 스택을 이용한 괄호쌍 매칭 문제의 변형
  • 현재 문자가 스택의 top과 일치하면 pop하고, 다르다면 push해주기만 하고, 문자열을 모두 처리했을때 스택에 남은것이 없는지만 확인하면 된다
  • 시간복잡도는 O(n)

코드

"""Solution code for "Programmers 12973. 짝지어 제거하기".

- Problem link: https://programmers.co.kr/learn/courses/30/lessons/12973
- Solution link: http://www.teferi.net/ps/problems/programmers/12973
"""


def solution(s):
    stack = []
    for ch in s:
        if stack and stack[-1] == ch:
            stack.pop()
        else:
            stack.append(ch)

    return 0 if stack else 1

토론

댓글을 입력하세요:
A R N B᠎ P
 
ps/problems/programmers/12973.txt · 마지막으로 수정됨: 2022/01/04 17:10 저자 teferi