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
}
}
반응형
'📝 코테 > BOJ' 카테고리의 다른 글
[Swift] 백준 10866 덱 (0) | 2023.03.29 |
---|---|
[Swift] 백준10845 큐 (0) | 2023.03.28 |
[Swift] 백준7568 덩치 (0) | 2023.03.28 |
[Swift] 백준10773 (0) | 2023.03.27 |
[Swift] 백준2775 (0) | 2023.03.27 |