풀이방법
스택에 "("을 쌓아놓고 닫힌 괄호면 하나씩 빼주었다.
코드
var repeatNum = Int(readLine()!)!
func sol() {
A: for i in 0..<repeatNum {
var str = String(readLine()!)
var stack = [Character]()
for c in str {
if c == "(" {
stack.append("(")
} else {
if stack.isEmpty {
print("NO")
continue A
} else {
stack.removeLast()
}
}
}
printAnswer(stack)
}
}
func printAnswer(_ stack: [Character]) {
if !stack.isEmpty {
print("NO")
} else {
print("YES")
}
}
sol()
반응형
'알고리즘 > Stack' 카테고리의 다른 글
백준 11899 괄호 끼워넣기 (0) | 2022.01.26 |
---|---|
백준 17413 단어 뒤집기 2 (0) | 2022.01.24 |
백준 3986 좋은 단어 (0) | 2022.01.22 |
백준 12605 단어순서 뒤집기 (0) | 2022.01.18 |
백준 10799 쇠막대기 (0) | 2022.01.15 |