MUKER_DEV with iOS

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ด„ํ˜ธ ํšŒ์ „ํ•˜๊ธฐ ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/programmers

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ด„ํ˜ธ ํšŒ์ „ํ•˜๊ธฐ

MUKER 2023. 3. 8. 22:18
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr


ํ’€์ด

func solution(_ s:String) -> Int {
    var result = 0
    var str = Array(s)
    for _ in 0..<s.count {
        var stack = [Character]()
        for i in 0..<s.count {
            stack.append(str[i])
            guard stack.count > 1 else { continue }
            if stack.last! == "}" {
                if stack.suffix(2) == ["{","}"] {
                    stack.removeLast(2)
                    continue
                } else {
                    break
                }
            }
            if stack.last! == ")" {
                if stack.suffix(2) == ["(",")"] {
                    stack.removeLast(2)
                    continue
                } else {
                    break
                }
            }
            if stack.last! == "]" {
                if stack.suffix(2) == ["[","]"] {
                    stack.removeLast(2)
                    continue
                } else {
                    break
                }
            }
        }
        if stack.isEmpty { result += 1 }
        str.append(str.first!)
        str.removeFirst()
    }
    return result
}