"("와 ")"가 쌍으로 존재하면 되기때문에
"("인 경우 count 변수를 +1, ")"인경우 count 변수를 -1 해주고
최종적으로 count의 값이 0이 된다면 YES를 출력하도록 하였다.
그러나 이 때, "())(()" 와 같이 count의 값은 0이지만, 한 쌍의 괄호기호는 아닌 경우가 있다.
이 경우를 제외하기 위해 ")"에서 count -1한 이후 count가 0보다 작다면 break를 사용하여 끝까지 진행하지 않고 바로 NO를 출력하도록 하였다.
import Foundation
let testCase = Int(readLine()!)!
for _ in 0..<testCase {
let line = readLine()!
var count = 0
for char in line {
if char == "(" {
count += 1
} else if char == ")" {
count -= 1
if count < 0 {
break
}
}
}
if count == 0 {
print("YES")
} else {
print("NO")
}
}
import Foundation
let testCase = Int(readLine()!)!
for _ in 0..<testCase {
let line = readLine()!
var count = 0
for char in line {
if char == "(" {
count += 1
} else if char == ")" {
count -= 1
if count < 0 {
break
}
}
}
print(count == 0 ? "YES" : "NO")
}
추가로 알고리즘 분류 보니 스택으로 구현하는 것도 괜찮을 것 같다..!
print(조건 ? 참일경우 : 거짓일 경우) 이거 꼭 기억해야겠다