ํ๋ก๊ทธ๋๋จธ์ค-Swift
ํ๋ก๊ทธ๋๋จธ์ค - ๊ดํธ ํ์ ํ๊ธฐ
CheonD
2022. 10. 12. 11:15
ํ๋ก๊ทธ๋๋จธ์ค - ๊ดํธ ํ์ ํ๊ธฐ
๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/76502
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋์ ํ์ด
์ด๋ฐ ๊ดํธ ๋ฌธ์ ๋ ์คํ์ด ๊ฑฐ์ ๊ณ ์ ์ธ ๊ฒ ๊ฐ๋ค.
์ฌ๋ ๋์ ๊ฐ์ด removeFirst์ removeLast๋ฅผ ์ฌ์ฉํด์ ๋ฌธ์ ๋ฅผ ํ์๋ค.
import Foundation
func solution(_ s:String) -> Int {
var result = 0
var changedArr = Array(s).map{ String($0) }
var stack: [String] = []
for i in 0..<s.count {
for j in changedArr {
if stack.isEmpty {
stack.append(j)
} else {
if stack.last! == "(" && j == ")" || stack.last! == "{" && j == "}" || stack.last! == "[" && j == "]" {
stack.removeLast()
} else {
stack.append(j)
}
}
}
result += stack.isEmpty ? 1 : 0
stack = []
changedArr.append(changedArr.removeFirst())
}
return result
}