728x90
9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
코드
package main
import (
"fmt"
"bufio"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
// writer := bufio.NewWriter(os.Stdout)
var t int
var s string
fmt.Fscanf(reader, "%d\n", &t)
for {
fmt.Fscanf(reader, "%s\n", &s)
check(s)
t = t -1
if t == 0 {
return
}
}
}
func check(s string) {
var stack []string
for _, char := range s {
if string(char) == "(" {
stack = append(stack, string(char))
} else if string(char) == ")" && len(stack) != 0{
if stack[len(stack) - 1] == "(" {
stack = stack[0:len(stack) - 1]
}
} else if string(char) == ")" && len(stack) == 0{
fmt.Println("NO")
return
}
}
if len(stack) != 0 {
fmt.Println("NO")
} else {
fmt.Println("YES")
}
}
잘 풀다가 이게 YES 인지 판단부분 이 헷갈렸다
() 여도 리스트는 비어있고
()) 여도 리스트가 비어있기 때문이다.
다음부터 작성하기 전에 어떤 조건(예) 들을 최소한으로 만족시켜야하는지 한번 적어보고 해봐야겠다.
728x90