๋ฌธ์
๋คํธ๊ฒ์์ 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์ ๋ฐํ
ํน์ ํ ์คํธ ์์ ๊ฒ์ํ ๋จ์ด, ์ฐพ๊ณ ์ถ์ ๋จ์ด๊ฐ ์๋ ๊ฒฝ์ฐ ํด๋น ํ ์คํธ๊ฐ ๋ฌธ๊ตฌ์ ํฌํจ๋์ด์๋์ง๋ฅผ ํ์ธ
'๐กAlgorithm > ๋ฌธ์ ํ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JS์๊ณ ๋ฆฌ์ฆ | ํ๋ก๊ทธ๋๋จธ์ค(Level 1) - ์์ฐ (0) | 2021.09.14 |
---|---|
JS์๊ณ ๋ฆฌ์ฆ | ํ๋ก๊ทธ๋๋จธ์ค(Level 1) - 3์ง๋ฒ ๋ค์ง๊ธฐ (0) | 2021.09.14 |
JS์๊ณ ๋ฆฌ์ฆ | ํ๋ก๊ทธ๋๋จธ์ค(Level 1) - ๋น๋ฐ์ง๋ (0) | 2021.09.12 |
JS์๊ณ ๋ฆฌ์ฆ | ํ๋ก๊ทธ๋๋จธ์ค(Level 1) - ์คํจ์จ (0) | 2021.09.10 |
JS์๊ณ ๋ฆฌ์ฆ | ํ๋ก๊ทธ๋๋จธ์ค(Level 1) - ๋ชจ์๊ณ ์ฌ (0) | 2021.09.09 |