[Level 2 / 스택] 짝지어 제거하기 + Swift

sanghee·2021년 9월 9일
0

🙈코딩테스트

목록 보기
31/52
post-thumbnail

[Level 2] 짝지어 제거하기

https://programmers.co.kr/learn/courses/30/lessons/12973?language=swift

문제 풀이

s를 ["a", "b", "b", "c"...]으로 쪼갠다. i는 인덱스이며 str은 인덱스에 해당하는 알파벳이다. 스택이 비었을 때에는 스택에 알파벳을 넣는다. 스택이 있는 경우에는 스택의 마지막 요소와 해당 알파벳을 비교한 이후, 같을 경우 스텍에서 제거한다. 다를 경우에는 스텍에 알파벳을 넣는다.

let s = "abbcdaadca"

func solution(_ s:String) -> Int{
    var stack = [Character]()
    let arr = Array(s)

    for i in arr.indices {
        let str = arr[i]
        if stack.isEmpty { stack.append(str) }
        else {
            if stack.last == str { stack.removeLast() }
            else { stack.append(str) }
        }
    }
     return stack.isEmpty ? 1 : 0
}
profile
👩‍💻

0개의 댓글