📝 코테/BOJ
[Swift] 백준9012 괄호
JerryiOS
2023. 3. 28. 15:00
import Foundation
/// 기본 VPS : ()
/// 만일 x가 VPS라면 (x)도 VPS
/// x: VPS, y: VPS라면 xy도 VPS
let T = Int(readLine()!)!
for _ in 1...T {
let str = readLine()!
if str.isVPS {
print("YES")
} else {
print("NO")
}
}
extension String {
var isVPS: Bool {
var stack = [Character]()
for char in self {
if char == "(" {
stack.append(char)
} else if char == ")" {
if stack.isEmpty {
return false // 첫글자에 ")"가 온경우
} else {
stack.removeLast() // 가장 최근에 스택에 들어간 "("를 지움, 즉 "()"를 제거하는 것
}
}
}
return stack .isEmpty ? true : false
}
}
반응형