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

Jimeaning·2023년 3월 7일
0

코딩테스트

목록 보기
17/143

Python3, 2017 팁스타운

문제

제한 사항

입출력 예시

나의 풀이 (시도)

  • 투 포인터? 스택? 스택!

주요 포인트

문자열이기 때문에 스택 길이가 0일 때를 따로 분리해서 조건문을 써줘야 함

len(stack) == 0 스택의 길이가 0일 때(맨 첫 원소) 스택에 i를 넣는다.
스택의 마지막 원소와 i가 같으면 (연속된 두 글자면) 스택에서 삭제한다
그 외의 경우는(연속되지 않은 경우) 스택에 i를 넣는다

반복문을 다 돌고 스택의 길이가 0이면 1을 출력, 그렇지 않으면 0을 출력한다

최종 코드

def solution(s):
    answer = -1
    stack = []

    for i in s:
        # 첫 번째 인덱스
        if len(stack) == 0:
            stack.append(i)
        # 스택의 마지막 원소가 i면 (연속된 두 글자면) 삭제
        elif stack[-1] == i:
            stack.pop()
        else: stack.append(i)

    if len(stack) == 0:
        answer = 1
    else:
        answer = 0

    return answer
profile
I mean

0개의 댓글