๋ฌธ์ œ

์–ด๋–ค ์ •์ˆ˜๋“ค์ด ์žˆ๋‹ค. ์ด ์ •์ˆ˜๋“ค์˜ ์ ˆ๋Œ“๊ฐ’์„ ์ฐจ๋ก€๋Œ€๋กœ ๋‹ด์€ ์ •์ˆ˜ ๋ฐฐ์—ด์—์„œ, ์‹ค์ œ ์ •์ˆ˜๋“ค์˜ ํ•ฉ์„ ๊ตฌํ•˜์—ฌ returnํ•ด๋ผ

 

์ˆ˜ํ•™๊ฐœ๋…

์ ˆ๋Œ“๊ฐ’(absolute value)

: ์–ด๋–ค ๊ฐ’์„ ์–‘์ˆ˜๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ ์œ„ํ•œ ์žฅ์น˜

 

์ •์ˆ˜

: ์–‘์˜์ •์ˆ˜, 0, ์Œ์˜ ์ •์ˆ˜์˜ ์ด์นญ

 

์ฝ”๋“œ

const solution = (absolutes, signs) => {
  let answer = absolutes.map((num, idx) => signs[idx] ? num : parseInt(-num)).reduce((a, b) => a + b);
  return answer;
}

๋ฌธ์ œ

์ •์ˆ˜๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๋ฐฐ์—ด arr์˜ ํ‰๊ท ๊ฐ’์„ returnํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด๋ผ

 

์—๋Ÿฌ๋‚œ ์ฝ”๋“œ

const average = (arr) => {
  let answer = 0;

  for (let i of arr) {
    answer += i;
  }

  return answer/arr.length;
}

๋ฌธ์ œ์—์„œ ํ•จ์ˆ˜ solution์„ ์ž‘์„ฑํ•˜๋ผ๊ณ  ํ–ˆ๋Š”๋ฐ ๋‚˜ํ˜ผ์ž ํ•จ์ˆ˜๋ช…์„ ๋”ฐ๋กœ ์ง€์–ด๋ฒ„๋ ธ๋‹ค....์•ˆ๋ ๋ฆฌ๊ฐ€ ์—†๋Š”๋ฐ ์™œ ์•ˆ๋˜์ง€ ์‹ถ์—ˆ๋„ค.. ์‚ฌ์†Œํ•œ ์‹ค์ˆ˜ ํ•˜์ง€์•Š๋„๋ก ํ•˜์ž.

 

 

์ฝ”๋“œ

const solution = (arr) => {
  let answer = 0;

  for (let i of arr) {
    answer += i;
  }

  return answer/arr.length;
}

์™„์ „ํƒ์ƒ‰์œผ๋กœ ํ•ด๊ฒฐํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ -> ์กฐํ•ฉ์„ ์ด์šฉ

 

4Combination3 = 4C3

4๊ฐœ ์ค‘์— 3๊ฐœ์”ฉ ์„ ํƒํ•  ๋•Œ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์กฐํ•ฉ์„ ๊ตฌํ•œ๋‹ค. ์ด ๋•Œ, ์กฐํ•ฉ์˜ ์ˆœ์„œ๋Š” ์ƒ๊ด€์ด ์—†๋‹ค. ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ ๊ฐ™์€ ๊ตฌ์„ฑ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋‚˜์˜ ์กฐํ•ฉ์œผ๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค. 

 

์†Œ์ˆ˜ 

: 1๊ณผ ์ž๊ธฐ ์ž์‹ ๋งŒ์„ ์•ฝ์ˆ˜๋กœ ๊ฐ–๋Š” ์ˆ˜, ์ž์‹ ๋ณด๋‹ค ์ž‘์€ ๋‘ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋ฅผ ๊ณฑํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” 1๋ณด๋‹ค ํฐ ์ž์—ฐ์ˆ˜

 

์ฒ˜์Œ ์‹œ๋„ํ•œ ๋ฐฉ๋ฒ•

์กฐํ•ฉ์œผ๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜ ๋ฐฐ์—ด๋กœ ์ฐพ์•„์„œ ๋‹ค ๋”ํ•œ๋‹ค์Œ์— ์†Œ์ˆ˜ํŒ๋ณ„ํ•  ์ƒ๊ฐ์ด์—ˆ๋‹ค. -> ์‹คํŒจ

 

์กฐํ•ฉ์„ ์ด์šฉํ•˜๊ธฐ

์„œ๋กœ ๋‹ค๋ฅธ n๊ฐœ์˜ ๋ฌผ๊ฑด์—์„œ ์ˆœ์„œ๋ฅผ ์ƒ๊ฐํ•˜์ง€์•Š๊ณ  r๊ฐœ๋ฅผ ํƒํ•  ๋•Œ, n๊ฐœ์—์„œ r๋ฅผ ํƒํ•˜๋Š” ์กฐํ•ฉ -> nCr

5๊ฐœ ์ค‘์—์„œ 3๊ฐœ๋ฅผ ๋”ํ•˜๋Š” ์กฐํ•ฉ 5C3 = 5*4*3 /3*2*1 = 10๊ฐ€์ง€

 

๋ฐฐ์—ด์˜ ์ฒ˜์Œ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ๊ณ ์ •ํ•˜๋ฉด์„œ ๋’ค์˜ ๋‚˜๋จธ์ง€ ๋ฐฐ์—ด์— ๋Œ€ํ•ด์„œ ์กฐํ•ฉ์„ ๊ตฌํ•œ๋‹ค. 

 

 

 

์ฝ”๋“œ

const solution = (nums) => {
  let answer = 0;
  const len = nums.length;

  for (let i = 0; i < len; i++) {
    for (let j = i + 1; j < len; j++) {
      for (let k = j + 1; k < len; k++) {
        const sum = nums[i] + nums[j] + nums[k];
        if (isPrime(sum)) answer++;
      }
    }
  }
  return answer;
}

const isPrime = (sum) => {
  for (let i = 2; i < sum; i++)
    if (sum % i === 0) return false;
  return true;
}

 

๋ฌธ์ œ

์ธํ˜•์ด ์—†๋Š” ์นธ์€ ๋นˆ์นธ์ด๋‹ค. ๋ชจ๋“  ์ธํ˜•์€ 1 x 1 ํฌ๊ธฐ์˜ ๊ฒฉ์ž ํ•œ ์นธ์„ ์ฐจ์ง€, ๊ฒฉ์ž์˜ ๊ฐ€์žฅ ์•„๋ž˜ ์นธ๋ถ€ํ„ฐ ์ฐจ๊ณก์ฐจ๊ณก ์Œ“์ž„

์‚ฌ์šฉ์ž๋Š” ํฌ๋ ˆ์ธ์„ ์ขŒ์šฐ๋กœ ์›€์ง์—ฌ์„œ ๋ฉˆ์ถ˜ ์œ„์น˜์—์„œ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์ธํ˜•์„ ์ง‘์–ด์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค. 

 

์ง‘์–ด์˜ฌ๋ฆฐ ์ธํ˜•์€ ๋ฐ”๊ตฌ๋‹ˆ์— ์Œ“์ธ๋‹ค. ๋ฐ”๊ตฌ๋‹ˆ์˜ ๊ฐ€์žฅ ์•„๋ž˜ ์นธ๋ถ€ํ„ฐ ์ธํ˜•์ด ์ˆœ์„œ๋Œ€๋กœ ์Œ“์ด๊ฒŒ๋œ๋‹ค.

๊ฐ™์€ ๋ชจ์–‘์˜ ์ธํ˜• ๋‘ ๊ฐœ๊ฐ€ ๋ฐ”๊ตฌ๋‹ˆ์— ์—ฐ์†ํ•ด์„œ ์Œ“์ด๊ฒŒ ๋˜๋ฉด ๋‘ ์ธํ˜•์€ ํ„ฐ๋œจ๋ ค์ง€๋ฉด์„œ ๋ฐ”๊ตฌ๋‹ˆ์—์„œ ์‚ฌ๋ผ์ง„๋‹ค. 

์ธํ˜•์ด ์—†๋Š” ๊ณณ์—์„œ ํฌ๋ ˆ์ธ์„ ์ž‘๋™์‹œํ‚ค๋Š” ๊ฒฝ์šฐ์—๋Š” ์•„๋ฌด๋Ÿฐ ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค.

 

ํ™”๋ฉด์˜ ๊ฒฉ์ž์˜ ์ƒํƒœ๊ฐ€ ๋‹ด๊ธด 2์ฐจ์› ๋ฐฐ์—ด board

์ธํ˜•์„ ์ง‘๊ธฐ ์œ„ํ•ด ํฌ๋ ˆ์ธ์„ ์ž‘๋™์‹œํ‚จ ์œ„์น˜๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด moves

ํฌ๋ ˆ์ธ์„ ๋ชจ๋‘ ์ž‘๋™์‹œํ‚จ ํ›„ ํ„ฐํŠธ๋ ค์ ธ ์‚ฌ๋ผ์ง„ ์ธํ˜•์˜ ๊ฐœ์ˆ˜๋ฅผ return

 

[์ œํ•œ์‚ฌํ•ญ]

board ์˜ ๊ฐ ์นธ์˜ 0์€ ๋นˆ์นธ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. 

1 ~ 100 ์˜ ์ˆซ์ž๋Š” ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์ธํ˜•์˜ ๋ชจ์–‘์„ ์˜๋ฏธํ•˜๋ฉฐ, ๊ฐ™์€ ์ˆซ์ž๋Š” ๊ฐ™์€ ๋ชจ์–‘์˜ ์ธํ˜•์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. 

 

 

 

 

์ฝ”๋“œ

stack์ด์šฉํ•ด์„œ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์˜€๋‹ค. 

const solution = (board, moves) => {
  // 2์ฐจ์› ๋ฐฐ์—ด์—์„œ moves์˜ ์ˆœ์„œ๋Œ€๋กœ ๊บผ๋‚ด์„œ ๋ฐฐ์—ด์— ๋‹ด๋Š”๋‹ค.
  // ์ค‘๋ณต๋˜๋Š” ํšŸ์ˆ˜ ๊ตฌํ•ด์„œ ๋ฆฌํ„ด
  let answer = 0;
  let basket = [];

  for (let i = 0; i < moves.length; i++) {
    let n = moves[i] - 1; //ํฌ๋ ˆ์ธ ์œ„์น˜ n์„ ๊ธฐ์ค€์œผ๋กœ ์„ธ๋กœ๊ธธ์ด๋งŒํผ ํƒ์ƒ‰

    for (let j = 0; j < board.length; j++) {
      // 0์ด ์•„๋‹Œ ์ˆซ์ž๋ฅผ ๊บผ๋‚ด์„œ basket ๋ฐฐ์—ด์— ๋‹ด๋Š”๋‹ค. 
      if (board[j][n] !== 0) {
        if (basket[basket.length - 1] === board[j][n]) {
          answer += 2;
          basket.pop();
        } else {
          basket.push(board[j][n]);
        }
        board[j][n] = 0; // ๊บผ๋‚ธ ์ž๋ฆฌ 0์œผ๋กœ ์ดˆ๊ธฐํ™”
        break; // ํ•ด๋‹น ํ•œ๊ฐœ๋งŒ ๊บผ๋‚ด๊ธฐ ์œ„ํ•ด์„œ (for๋ฌธ ๋ฉˆ์ถ”๊ธฐ)
      }
    }
  }
  return answer;
}

const board = [
  [0, 0, 0, 0, 0],
  [0, 0, 1, 0, 3],
  [0, 2, 5, 0, 1],
  [4, 2, 4, 4, 2],
  [3, 5, 1, 3, 1]
];
const moves = [1, 5, 3, 5, 1, 2, 1, 4];
console.log(solution(board, moves));

๋ฌธ์ œ

์ˆœ์„œ๋Œ€๋กœ ๋ˆ„๋ฅผ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด numbers

์™ผ์†์žก์ด์ธ์ง€ ์˜ค๋ฅธ์†์žก์ด์ธ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด hand

→ ๊ฐ ๋ฒˆํ˜ธ๋ฅผ ๋ˆ„๋ฅธ ์—„์ง€์†๊ฐ€๋ฝ์ด ์™ผ์†์ธ์ง€ ์˜ค๋ฅธ์†์ธ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์—ฐ์†๋œ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ return

 

 

์ฝ”๋“œ

const solution = (numbers, hand) => {
  let answer = '';

  let keypad = {
    1: [0, 0],
    2: [0, 1],
    3: [0, 2],
    4: [1, 0],
    5: [1, 1],
    6: [1, 2],
    7: [2, 0],
    8: [2, 1],
    9: [2, 2],
    '*': [3, 0],
    0: [3, 1],
    '#': [3, 2],
  };

  let leftHand = keypad['*'];
  let rightHand = keypad['#'];

  for (let x of numbers) {
    let [i, j] = keypad[x];

    if (j === 0) {
      answer += 'L';
      leftHand = keypad[x];
    }
    else if (j === 2) {
      answer += 'R';
      rightHand = keypad[x];
    }
    else {
      // ์™ผ์ชฝ ์†๊ฐ€๋ฝ ์œ„์น˜์™€ ํ˜„์žฌ ์œ„์น˜์™€ ๋–จ์–ด์ง„ ๊ฑฐ๋ฆฌ๊ณ„์‚ฐ
      let leftDistance = Math.abs(i - leftHand[0]) + Math.abs(j - leftHand[1]);
      // ์˜ค๋ฅธ์ชฝ ์†๊ฐ€๋ฝ ์œ„์น˜์™€ ํ˜„์žฌ ์œ„์น˜์™€ ๋–จ์–ด์ง„ ๊ฑฐ๋ฆฌ๊ณ„์‚ฐ
      let rightDistance = Math.abs(i - rightHand[0]) + Math.abs(j - rightHand[1]);

      if (leftDistance > rightDistance) {
        rightHand = keypad[x];
        answer += 'R';
      }
      else if (leftDistance < rightDistance) {
        leftHand = keypad[x];
        answer += 'L';
      }
      else if (leftDistance === rightDistance) {
        if (hand === 'left') {
          leftHand = keypad[x];
          answer += 'L';
        } else {
          rightHand = keypad[x];
          answer += 'R';
        }
      }
    }
  }
  return answer;
}

๋ฌธ์ œ

๋ถ€์„œ๋ณ„๋กœ ์‹ ์ฒญํ•œ ๊ธˆ์•ก๋งŒํผ ๋ชจ๋‘ ์ง€์›ํ•ด์ค˜์•ผํ•œ๋‹ค. 

๋ถ€์„œ๋ณ„๋กœ ์‹ ์ฒญํ•œ ๊ธˆ์•ก์ด ๋“ค์–ด์žˆ๋Š” ๋ฐฐ์—ด d, ์˜ˆ์‚ฐ budget์ด ์ฃผ์–ด์งˆ ๋•Œ, 

์ตœ๋Œ€ ๋ช‡ ๊ฐœ์˜ ๋ถ€์„œ์— ๋ฌผํ’ˆ์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ return 

 

์ฝ”๋“œ

const solution = (d, budget) => {
  let answer = 0;
  // ๊ฐ€์žฅ ์ž‘์€ ์˜ˆ์‚ฐ์„ ๊ฐ€์ง„ ๋ถ€์„œ๋ถ€ํ„ฐ ์ด ์˜ˆ์‚ฐ์„ ์ฐจ๊ฐํ•ด๊ฐ€์•ผ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€์„œ๊ฐ€ ์ตœ๋Œ€๋กœ ๋œ๋‹ค. 
  d.sort((a, b) => a - b); // ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ

  d.reduce((acc, cur) => {
    acc + cur <= budget ? answer++ : answer;
    return acc + cur;
  }, 0);

  return answer;
}

๋ฌธ์ œ

์ฃผ์–ด์ง„ ์ž์—ฐ์ˆ˜ n์„ 3์ง„๋ฒ• ์ƒ์—์„œ ์•ž๋’ค๋กœ ๋’ค์ง‘๊ณ , ์ด๋ฅผ ๋‹ค์‹œ 10์ง„๋ฒ•์œผ๋กœ ํ‘œํ˜„ํ•œ ์ˆ˜๋ฅผ return

 

ํ’€์ด

const solution = (n) => {
  let answer = n.toString(3).split('').reverse().join('');
  return parseInt(answer, 3);
}

 

 

์‚ฌ์šฉํ•œ ๋ฉ”์†Œ๋“œ

1) Number.toString()

10์ง„๋ฒ• -> 2, 8, 16์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜

let value = 16;

value.toString(2); // 10000
value.toString(8); // 20
value.toString(16); // 10

2) parseInt

๋ฌธ์ž์—ด์„ ์ •์ˆ˜๋กœ ํ•ด์„ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ „๋‹ฌ๋ฐ›์€ ์ธ์ˆ˜๊ฐ€ ๋ฌธ์ž์—ด์ด ์•„๋‹ˆ๋ฉด ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•œ ๋‹ค์Œ, ์ •์ˆ˜๋กœ ํ•ด์„ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค.  

๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜๋กœ ์ง„๋ฒ•์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ธฐ์ˆ˜๋ฅผ(2~36)์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ์ˆ˜๋ฅผ ์ƒ๋žตํ•˜๋ฉด ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋œ ๋ฌธ์ž์—ด์„ 10์ง„์ˆ˜๋กœ ํ•ด์„ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

parseInt('10', 2); // ๋ฌธ์ž์—ด 10์„ 2์ง„์ˆ˜๋กœ ํ•ด์„
parseInt('10', 8); // ๋ฌธ์ž์—ด 10์„ 8์ง„์ˆ˜๋กœ ํ•ด์„

๋ฌธ์ œ

๋‹คํŠธ๊ฒŒ์ž„์˜ 3๋ฒˆ์˜ ๊ธฐํšŒ์—์„œ ์–ป์€ ์ ์ˆ˜ ํ•ฉ๊ณ„์— ํ•ด๋‹นํ•˜๋Š” ์ •์ˆ˜๊ฐ’์„ ์ถœ๋ ฅ

 

์ž…์ถœ๋ ฅ์˜ˆ์ œ

 

 

๋‹คํŠธ๊ฒŒ์ž„์˜ ์ ์ˆ˜ ๊ณ„์‚ฐ ๋กœ์ง

ใƒป ์ด 3๋ฒˆ์˜ ๊ธฐํšŒ

ใƒป ๊ฐ ๊ธฐํšŒ๋งˆ๋‹ค ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ ์ˆ˜๋Š” 0์ ์—์„œ 10์  ๊นŒ์ง€

ใƒป S, D, T ์˜์—ญ์ด ์กด์žฌํ•˜๊ณ  ๊ฐ ์˜์—ญ ๋‹น์ฒจ ์‹œ ์ ์ˆ˜์—์„œ 1์ œ๊ณฑ, 2์ œ๊ณฑ, 3์ œ๊ณฑ (S, D, T๋Š” ์ ์ˆ˜๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ ์กด์žฌ)

ใƒป ์Šคํƒ€์ƒ(*) : ํ•ด๋‹น ์ ์ˆ˜์™€ ๋ฐ”๋กœ ์ „์— ์–ป์€ ์ ์ˆ˜๋ฅผ ๊ฐ 2๋ฐฐ๋กœ ๋งŒ๋“ ๋‹ค.

ใƒป ์ฒซ ๋ฒˆ์งธ ๊ธฐํšŒ์—์„œ๋„ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

ใƒป ์ฒซ ๋ฒˆ์งธ ์Šคํƒ€์ƒ์˜ ์ ์ˆ˜๋งŒ 2๋ฐฐ๊ฐ€๋œ๋‹ค. 

ใƒป ์Šคํƒ€์ƒ์˜ ํšจ๊ณผ๋Š” ๋‹ค๋ฅธ ์Šคํƒ€์ƒ์˜ ํšจ๊ณผ์™€ ์ค‘์ฒฉ๋  ์ˆ˜ ์žˆ๋‹ค. ์ค‘์ฒฉ๋œ ์•„์ฐจ์ƒ์˜ ์ ์ˆ˜๋Š” -2๋ฐฐ๊ฐ€ ๋œ๋‹ค. 

ใƒป ์•„์ฐจ์ƒ(#) - ํ•ด๋‹น ์ ์ˆ˜ ๋งˆ์ด๋„ˆ์Šค

ใƒป ์Šคํƒ€์ƒ, ์•„์ฐจ์ƒ์€ ์ ์ˆ˜๋งˆ๋‹ค ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ ์กด์žฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์กด์žฌํ• ์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค. 

 

 

์ ‘๊ทผ๋ฐฉ๋ฒ•

๋ฌธ์ž์—ด ๋‚ด์—์„œ ๋จผ์ € ๋ฌธ์ž๋‚˜ ๊ธฐํ˜ธ ๊ธฐ์ค€์œผ๋กœ ๊ตฌํš์„ ๋‚˜๋ˆ„์–ด ์ž˜๋ผ์„œ ๋ฐฐ์—ดํ™” ํ•˜๊ณ , ๋‹ค์Œ์— ๊ฐ๊ฐ ๊ฐœ๋ณ„ ์—ฐ์‚ฐ์„ ํ•ด์ค€๋‹ค. ๋งˆ์ง€๋ง‰์— ํ•œ ๋ฒˆ์— ๊ณฑํ•ด์„œ ๊ฒฐ๊ณผ๊ฐ’์„ ์ฐพ๋Š”๋‹ค. 

 

์›๋ž˜ ํ•˜๊ณ ์‹ถ์—ˆ๋˜ ๋ฐฉ๋ฒ•์€ ์ •๊ทœ์‹์œผ๋กœ ๊ฐ ์ˆซ์ž์˜ ์•ž์—์„œ ์ž๋ฅธ ๋‹ค์Œ์— ๊ฐ๊ฐ ๊ณ„์‚ฐ์„ ํ•ด์ฃผ๊ณ ์‹ถ์—ˆ๋Š”๋ฐ, ์ƒ๊ฐ๋ณด๋‹ค ์ •๊ทœ์‹ ๊ฐ€๊ณต์ด ๋งˆ์Œ๋Œ€๋กœ ๋˜์ง€์•Š์•˜๋‹ค. ๋‚˜์ค‘์— ๋‹ค์‹œ ํ•œ ๋ฒˆ ํ’€์–ด๋ณด๋ฉด์„œ ์ด ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ•ด๋ณด์•„์•ผํ•  ๊ฒƒ ๊ฐ™๋‹ค. 

 

 

์ฝ”๋“œ

const solution = (dartResult) => {
  let answer = 0;
  let score = 0;
  let scoreArr = [];

  for (let i = 0; i < dartResult.length; i++) {
    // ์ ์ˆ˜๊ฐ€ 10์ธ ๊ฒฝ์šฐ ์ฐพ์•„์ค˜์„œ ๋ถ„๋ฆฌ
    if (!isNaN(dartResult[i])) {
      score = Number(dartResult[i - 1]) === 1 ? 10 : Number(dartResult[i]);
    }
    else if (dartResult[i] === 'S') { // 1์ œ๊ณฑ
      scoreArr.push(score);
    }
    else if (dartResult[i] === 'D') { // 2์ œ๊ณฑ
      scoreArr.push(Math.pow(score, 2));
    }
    else if (dartResult[i] === 'T') { // 3์ œ๊ณฑ
      scoreArr.push(Math.pow(score, 3));
    }
    else if (dartResult[i] === '*') {
      scoreArr[scoreArr.length - 2] = scoreArr[scoreArr.length - 2] * 2;
      scoreArr[scoreArr.length - 1] = scoreArr[scoreArr.length - 1] * 2;
    }
    else if (dartResult[i] === '#') {
      scoreArr[scoreArr.length - 1] = -1 * scoreArr[scoreArr.length - 1];
    }
  }
  answer = scoreArr.reduce((acc, cur) => acc + cur, 0);
  return answer;
}

1-9๊นŒ์ง€๋Š” ๊ดœ์ฐฎ์€๋ฐ 10์„ ์ž˜ ์ฐพ์•„์„œ ๊ฑธ๋Ÿฌ์ฃผ์–ด์•ผํ–ˆ๋‹ค. 

 

Math.pow(๋ฐ‘, ์ง€์ˆ˜)

์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜๋ฅผ '๋ฐ‘'์œผ๋กœ ๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜๋ฅผ '์ง€์ˆ˜'๋กœ ๊ฑฐ๋“ญ์ œ๊ณฑํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

 

String.match(์ฐพ์„๋‹จ์–ด)

.match()๋Š” ์ •๊ทœํ‘œํ˜„์‹์— ๋งž๋Š” ๋ฌธ์ž์—ด์„ ์ฐพ์•„์„œ ๋ฐฐ์—ด ๊ฐ์ฒด๋กœ ๋ฐ˜ํ™˜

์ •๊ทœํ‘œํ˜„์‹์— ๋งž๋Š” ๋ฌธ์ž์—ด์ด ์—†๋‹ค๋ฉด null์„ ๋ฐ˜ํ™˜

ํŠน์ • ํ…์ŠคํŠธ ์•ˆ์— ๊ฒ€์ƒ‰ํ•  ๋‹จ์–ด, ์ฐพ๊ณ ์‹ถ์€ ๋‹จ์–ด๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ํ…์ŠคํŠธ๊ฐ€ ๋ฌธ๊ตฌ์— ํฌํ•จ๋˜์–ด์žˆ๋Š”์ง€๋ฅผ ํ™•์ธ

+ Recent posts