ํฐ์คํ ๋ฆฌ ๋ทฐ
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ๋คํธ ๊ฒ์
๊ฐ๋ฐ๊ฐ๊ตด๐ธ 2022. 9. 18. 17:40[๋ฌธ์ ]
https://school.programmers.co.kr/learn/courses/30/lessons/17682
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr


[ํ์ด]
๋ฌธ์ ์ ํต์ฌ์ ์ ๊ท์์ ํ์ฉํด S,D,T,*,#์ ๊ฐ์ ์ฐ์ฐ์์, ์ซ์๋ฅผ ๋ถ๋ฆฌํ๋ ๊ฒ์ ๋๋ค.
์์ 1๋ฒ 1S2D*3T๋ฅผ ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ถ๋ฆฌํ ์ ์์ต๋๋ค.
- ์ซ์๋ฅผ [1, 2, 3]์ผ๋ก ๋ถ๋ฆฌ(num[]) => dartResult.split(/[S|D|T|*|#]/).filter((e) => e !== '').map(Number)
- ์ฐ์ฐ์๋ฅผ [S, D*, T]์ผ๋ก ๋ถ๋ฆฌ(opt[]) => dartResult.split(/[0-9]/).filter((e) => e !== '')
๋ค์์ผ๋ก 1, 2, 3์ ๊ฐ๊ฐ ์ฐ์ฐ์์ ๋งค์นํ์ฌ ๊ณ์ฐ์ ์งํํ๋ฉฐ ๊ฐ๊ฐ ret๋ฐฐ์ด์ ์ ์ฅํฉ๋๋ค.
(*์ด ๋์์ ๊ฒฝ์ฐ ์ด์ ์ซ์๋ฅผ ํ์ฉํด์ผ ํ๋ฏ๋ก ret๋ฐฐ์ด์ ๊ฐ๊ฐ ์ฐ์ฐ๊ฐ์ ๊ฐ์ง๊ณ ์์ด์ผ ํจ)
- S, D, T ๊ธฐ๋ณธ์ฐ์ฐ์ ์งํํ์ฌ ret์ ๊ธฐ๋ณธ ์ฐ์ฐ๊ฐ์ ์ ์ฅ
- ๋ง์ฝ ํ์ฌ i๋ฒ์งธ ์ฐ์ฐ์ค์ผ ๋, opt[i]์ ๊ธธ์ด๊ฐ 2๋ผ๋ฉด ์ถ๊ฐ์ฐ์ฐ์ ์งํ
๋ฐ๋ผ์ ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ ret ๋ฐฐ์ด์ [2, 8, 27]์ด๋ฏ๋ก 2+8+27 = 37์ด ๋ฉ๋๋ค.
[์ฝ๋]
function solution(dartResult) {
var answer = 0;
const num = dartResult.split(/[S|D|T|*|#]/).filter((e) => e !== '').map(Number);
const opt = dartResult.split(/[0-9]/).filter((e) => e !== '');
const ret = Array.from({length: 3}, () => 0);
for(let i=0;i<3;i++) {
// ๊ธฐ๋ณธ ์ฐ์ฐ
if(opt[i][0] === 'S') {
ret[i] = num[i];
} else if(opt[i][0] === 'D') {
ret[i] = num[i]*num[i];
} else if(opt[i][0] === 'T') {
ret[i] = num[i]*num[i]*num[i];
}
// ์ถ๊ฐ ์ฐ์ฐ
if(opt[i].length === 2) {
// ๊ณฑ์
if(opt[i][1] === '*') {
ret[i] *= 2;
if(i > 0) {
ret[i-1] *= 2;
}
}
// ๋ง์ด๋์ค
if(opt[i][1] === '#') {
ret[i] = ret[i]*-1;
}
}
}
for(let i=0;i<3;i++) {
answer += ret[i];
}
return answer;
}
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ๊ธฐ์ง๊ตญ ์ค์น (0) | 2022.10.17 |
---|---|
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ์ซ์ ๊ฒ์ (1) | 2022.09.30 |
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ๋ธ๋ก๊ฒ์ (0) | 2022.09.16 |
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ๋ฌด์ง์ ๋จน๋ฐฉ ๋ผ์ด๋ธ (0) | 2022.09.11 |
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ์คํจ์จ (0) | 2022.09.05 |
- Total
- Today
- Yesterday
- ์๊ณ ๋ฆฌ์ฆ
- ๋ ์์ปฌ ํ๊ฒฝ
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- JavaScript
- ์ด๋ถํ์
- ํฌํฌ์ธํฐ
- ์ ์ญ ๋ณ์
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- git
- ๋ฐฑ์ค node.js
- ์ฝ๋ฉํ ์คํธ
- fp
- ์๋ฐ
- ์ด์์ฒด์
- ์๋ฐ์คํฌ๋ฆฝํธ
- ํ๋กํ ์ฝ
- ๋์์ธ ํจํด
- ํ๋ก๊ทธ๋๋จธ์ค
- TDD
- ๋คํธ์ํฌ
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
- ํ๋กํผํฐ
- ๋ฐฑ์ค
- map
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- Baekjoon
- ๋ฐฑ์ค javascript
- http
- ์นด์นด์ค ์ธํด
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |