반응형
안녕하세요. 개발 중인 정주입니다.
오늘은 백준 BOJ - 9012 괄호 문제를 풀었습니다.
목차
Github
문제 링크
https://www.acmicpc.net/problem/9012
풀이
해당 문제는 스택을 이용한 문제입니다.
사실 배열이 아닌 Int count를 해서 풀 수도 있지만 배열을 이용해 풀어보고 싶었습니다.
"("가 들어오면 무조건 append, 짝이 맞지 않는 ")"가 들어오면 append를 했습니다.
YES, NO는 배열이 비어있느냐 아니냐를 기준으로 판단했습니다.
따라서 짝이 맞아 모든 괄호가 pop이 된다면 YES가 출력됩니다.
전체 코드
import Foundation
let count = Int(readLine()!)!
var stack: [Character] = []
for _ in 0..<count {
stack = []
let input = String(readLine()!)
for s in input {
if s == "(" {
stack.append(s)
} else if s == ")" {
guard let pop = stack.last, pop == "(" else {
stack.append(s)
break
}
stack.removeLast()
}
}
print(stack.isEmpty ? "YES" : "NO")
}
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.
반응형