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

eenzeenee·2023년 4월 17일

CodingtestPractice

목록 보기
2/13

문제 링크

스택을 활용하는 문제임을 파악하지 못함!

  • 역시나 내공의 부족
  • while문을 많이 돌리게 되는 짝짓기 문제라면 ... stack을 고려해보자

코드

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

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

    return answer

풀이

  • 입력 문자열의 길이만큼 순회
  • 스택을 활용하여
    - 스택이 없을 경우 : append
    • 스택의 마지막 요소가 현재 요소와 같을 경우 : pop
    • 스택의 마지막 요소가 현재 요소와 다를 경우 : append
  • 마지막 단계에서 스택이 존재하면 - 스택을 비우지 못했다는 이야기 - 짝을 맞출 수 없었다 -> return 0 (짝짓기 실패)
profile
Steadily

0개의 댓글