const fs = require('fs')
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n').slice(1)
const solution = (input) => {
return input.map(s => {
if (s[0]===')') return 'NO'
let count = 0
for(let i = 0; i < s.length; i++){
s[i] === '(' ? count++ : count--
if ( count < 0 ) return 'NO'
}
return count === 0 ? 'YES' : 'NO'
}).join('\n')
}
주어진 문자열이 )
로 시작하면 NO를 반환한다
주어진 문자열을 순회하여 (
이면 count를 증가시키고 )
이면 count를 감소시킨다
count가 0보다 작으면 NO를 반환한다
순회를 마쳤을 때 count가 0이면 YES를 반환하고 아니면 NO를 반환한다
각 문자열 요소를 갖는 배열input
을 map()
으로 새로운 배열을 만들고
그 결과값을 개행문자\n
를 기준으로 join()
해서 반환한다