[프로그래머스] 짝지어

https://school.programmers.co.kr/learn/courses/30/lessons/12973

문제 설명

쌍을 제거하려면 일련의 알파벳 소문자로 시작하십시오. 먼저 문자열에서 두 개의 동일한 문자 쌍을 찾으십시오. 그런 다음 두 개를 제거하고 문자열을 앞뒤로 연결합니다. 이 과정을 반복하여 모든 문자열을 제거하면 페어 제거가 완료됩니다. 문자열 S가 주어지면 페어링이 성공적으로 수행될 수 있는지 여부를 반환하는 함수를 완성하십시오. 성공하면 1을, 그렇지 않으면 0을 반환합니다.

예를 들어 문자열 S = 바바아 라면

바흐 → bb ㄱ →

이 순서대로 모든 문자열을 제거할 수 있으므로 1을 반환합니다.

제한

  • 문자열 길이: 1,000,000 미만의 자연수
  • 문자열은 모두 소문자입니다.

문제를 해결하다

def solution(s):
    answer = -1
    arr = ()
    for i in s:
        if not arr: #arr이 list가 아니라면
            arr.append(i)
        elif arr(-1) == i: #글자가 짝이 맞는다면
            arr.pop()
        else: #글자가 짝이 맞지 않는다면
            arr.append(i)
    if not arr:
        return 1
    else:
        return 0

문제에 대한 해결책 설명

이것은 스택을 사용한 솔루션입니다. 먼저 파라미터의 문자를 한 번에 한 문자씩 접근하여 arr 스택에 삽입하고, 같은 문자가 입력되면 pop() 함수를 이용해 쌍으로 제거하도록 로직을 구성한다.