Algorithm

Leetcode 682. Baseball Game

KANG_G1 2023. 5. 18. 15:06

제공되는 문자열을 받아 배열의 요소를 모두 더한 값을 리턴하는 문제.

 

문제 자체는 쉬웠지만 string type의 배열 요소를 number로 변환해주는 작업이 필요했다.

메서드를 사용해 형변환을 해주는 건 불필요하다 생각해

자바스크립트의 특징인 암묵적 형변환을 통해 해결할 수 있었다.

 

* Answer

/**
 * @param {string[]} operations
 * @return {number}
 */
var calPoints = function(operations) {
    const ops = operations;
    let arr = [];
    
    for(let i=0; i<ops.length; i++) {
        // 문자일 때만 if문으로, 나머지는 숫자일 테니 빈 배열에 push.
        if(ops[i] === 'C') {
           arr.pop();
        } else if(ops[i] === 'D') {
           arr.push(arr[arr.length-1]*2);
        } else if(ops[i] === '+') {
            arr.push(arr[arr.length-1]+ arr[arr.length-2]);
        } else {
            // string type -> number type 변환이 필요. JS의 암묵적 형변환 사용.
            arr.push(+ops[i]);
        }   
    }
    // 완성된 배열을 모두 합산하기 위한 reduce() 사용.
    const sum = arr.reduce((acc,curr) => acc+curr,0);
    return sum;
};