문제
균형 잡힌 대괄호 문자열 str을 첫 번째이자 유일한 인수로 취하는 JavaScript 함수를 작성해야 합니다.
우리의 함수는 다음 규칙에 따라 문자열의 점수를 계산하고 반환해야 합니다 -
-
[]은(는) 1점을 받았습니다.
-
AB의 점수는 A + B이며, 여기서 A와 B는 대괄호 스트링입니다.
-
[A] 점수는 2 * A입니다. 여기서 A는 대괄호 문자열입니다.
예를 들어, 함수에 대한 입력이
인 경우입력
const str = '[][]';
출력
const output = 2;
예시
다음은 코드입니다 -
const findScore = (str = '') => { const arr = [] for(const char of str) { arr.push(char) while(arr[arr.length - 1] === ']') { arr.pop() if(arr[arr.length - 1] === '[') { arr.pop() arr.push(1) } else { let num = arr.pop() while(arr[arr.length - 1] >= 1) { num += arr.pop() } arr.pop() arr.push(2 * num) } } } return arr.reduce((acc, a) => acc + a, 0) }; console.log(findScore(str));
출력
2