알고리즘
[Swift 알고리즘] 프로그래머스 - 짝지어 제거하기
코코종
2023. 5. 1. 21:06
728x90
안녕하세요 코코종입니다. 2레벨 문제를 뽀개는 중입니다.
import Foundation
func solution(_ s:String) -> Int{
var answer: Int
var arr = Array(s)
var stack: [Character] = []
for i in 0..<arr.count {
if stack.isEmpty {
stack.append(arr[i])
} else {
if stack.last! == arr[i] {
stack.removeLast()
} else {
stack.append(arr[i])
}
}
}
answer = stack.isEmpty ? 1 : 0
return answer
}
쉬운 문제였는데요. stack을 만들어서 가장 위에 있는 값이랑 다음 값이 같다면 pop을 해주고 아니라면 append를 해주는 식입니다.
웃긴건... popLast()로 하면 시간 초과가 뜨네요 ㅎ... 효율성 1,2번만 틀리길래 검색해보니 removeLast로 푸시더라구요. 왜 popLast는 안되는지 의문이네요 허허... 스위프트 억까좀 멈춰!
728x90