본문 바로가기

알고리즘/Stack

백준 9012 괄호

풀이방법

스택에 "("을 쌓아놓고 닫힌 괄호면 하나씩 빼주었다.

 

코드

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