문제
균형 잡힌 대괄호 문자열 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