๋ฌธ์ œ

๋‹คํŠธ๊ฒŒ์ž„์˜ 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