728x90
https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
이제는 쉽게 푸는 괄호 문제!
배열로 stack을 구현한다.
만약 ( 라면 무조건 stack에 넣는다
)라면 비어있는 경우 NO, 아니라면 stack pop! (어차피 비어있지 않으면 '('만 들어있을 테니까!)
모든 괄호 원소를 봤는데 비어있지 않으면 NO
import Foundation
let t = Int(readLine()!)!
func checkCorrectParenthesis(_ parenthesis: [String]) {
var stack = [String]()
for paren in parenthesis {
if paren == "(" {
stack.append(paren)
}else {
if stack.isEmpty {
print("NO")
return
}else {
stack.removeLast()
}
}
}
if stack.isEmpty {
print("YES")
}else {
print("NO")
}
return
}
for _ in 0..<t {
let parenthesis = readLine()!.map{ String($0) }
checkCorrectParenthesis(parenthesis)
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준/Swift] 14501번 퇴사(백트래킹) (0) | 2023.01.19 |
---|---|
[백준/Swift] 1436번: 영화감독 숌 (0) | 2023.01.17 |
[백준/Swift] 11866번: 요세푸스 문제 0 (0) | 2023.01.17 |
[백준/Swift] 2468번: 안전 영역 (0) | 2023.01.12 |
[백준/Swift] 1260번: DFS와 BFS (0) | 2023.01.11 |