Problem Solving
[Swift] 프로그래머스 짝지어 제거하기(lv. 2)
DuncanKim
2023. 3. 7. 09:50
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