function solution(s) {
let answer = '';
let block = 0;
for (const l of s) {
if (l === '(') {
block++;
continue;
} else if (l === ')') {
block--;
continue;
}
if (block > 0) {
continue;
} else {
answer += l;
}
}
return answer;
}
let str = "(A(BC)D)EF(G(H)(IJ)K)LM(N)";
console.log(solution(str));
for문 하나로 풀어보았습니다.
( 를 만나면 block 변수를 1 증가. )를 만나면 blcok 변수 1 감소
block 변수가 0보다 크면 그 안에 있는 문자들은 괄호 안에 있으니까 무시
block이 없을 때 만나는 문자만 answer에 추가.
이런 로직으로 풀어보았습니다.
혹시 대응하지 못하는 예시가 있을까요??
항상 감사합니다 선생님