728x90
9012
코드
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