[프로그래머스] 다트 게임 (JS)

hhkim·2023년 7월 7일
0

Algorithm - JavaScript

목록 보기
58/188
post-thumbnail

풀이 과정

  1. dartResult를 돌면서 다음 숫자가 나올 때까지 조건에 따라 처리 후 결과를 배열에 저장
  2. 결과 배열의 합 구하기: reduce()

코드

function solution(dartResult) {
  const result = [];
  let i = 0;
  while (i < dartResult.length) {
    let num = '';
    while (!isNaN(dartResult[i])) {
      num += dartResult[i];
      ++i;
    }
    result.push(Number(num));
    while (i < dartResult.length && isNaN(dartResult[i])) {
      const c = dartResult[i];
      ++i;
      if (c === 'D') result[result.length - 1] = result.at(-1) ** 2;
      else if (c === 'T') result[result.length - 1] = result.at(-1) ** 3;
      else if (c === '*') {
        result[result.length - 1] *= 2;
        if (result.length > 1) result[result.length - 2] *= 2;
      } else if (c === '#') result[result.length - 1] *= -1;
    }
  }
  return result.reduce((total, n) => total + n, 0);
}

🤔

정규표현식을 정말 공부할 때가 온 것인가...

0개의 댓글