728x90
[Swift] 프로그래머스 짝지어 제거하기(lv. 2)
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/12973
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
'Problem Solving' 카테고리의 다른 글
[Swift] 프로그래머스 N개의 최소공배수(lv. 2) (0) | 2023.03.10 |
---|---|
[Swift] 프로그래머스 카펫(lv. 2) (0) | 2023.03.09 |
[Swift] 프로그래머스 다음 큰 숫자(lv. 2) (0) | 2023.03.06 |
[Swift] 프로그래머스 피보나치 수(lv. 2) (0) | 2023.03.03 |
[Swift] 프로그래머스 이진 변환 반복하기(lv. 2) (0) | 2023.03.02 |
댓글