😎풀이

  1. record: 이전 숫자 기록
  2. operations 순회
  3. 연산자에 맞는 연산 수행
    3-1. D라면, 이전 숫자의 2배를 record에 추가
    3-2. C라면, 이전 숫자 제거
    3-3. +라면, 이전 두 숫자 합 record에 추가
    3-4. 숫자라면, record에 추가
  4. record의 총합 반환환
function calPoints(operations: string[]): number {
    const record = []
    for(const operator of operations) {
        switch(operator) {
            case 'D':
                record.push(record.at(-1) * 2)
                break
            case 'C':
                record.pop()
                break
            case '+':
                record.push(record.at(-1) + record.at(-2))
                break
            default:
                record.push(Number(operator))
        }
    }
    return record.reduce((acc, cur) => acc + cur, 0)
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글