본문 바로가기
Problem Solving

[Swift] 프로그래머스 짝지어 제거하기(lv. 2)

by DuncanKim 2023. 3. 7.
728x90

[Swift] 프로그래머스 짝지어 제거하기(lv. 2)

 

1. 문제

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

2. 접근

짝을 지어 제거하는 것이기 때문에, 스택에 쌓았을 때, 이전에 쌓여있던 것과 새로 들어올 것이 같으면 removeLast()를 활용해서 같은 것들을 골라낼 수 있다. 앞에서부터 없애가는 것이기 때문에 이 방법을 활용할 수 있는 것이다.

 

마지막에 stack에 어떤 것이 남아있다면, 더이상 제거가 불가능한 것이고, stack에 아무것도 남아있지 않다면, 제거가 가능한 것이기 때문에 상황에 맞게 0 또는 1을 반환해주는 삼항 연산자를 사용하여  리턴하였다.

 

3. 코드

import Foundation

func solution(_ s:String) -> Int{
    var stack = [Character]()
    for i in s {
        if stack.last ?? "0" == i {
            stack.removeLast()
            continue
        }
        stack.append(i)
    }
    return stack.count == 0 ? 1 : 0
}
728x90

댓글