ํ๋ก๊ทธ๋๋จธ์ค LV.1 ๋คํธ๊ฒ์
์นด์นด์คํก ๊ฒ์๋ณ์ ํ๋ฐ๊ธฐ ์ ๊ท ์๋น์ค๋ก ๋คํธ ๊ฒ์์ ์ถ์ํ๊ธฐ๋ก ํ๋ค. ๋คํธ ๊ฒ์์ ๋คํธํ์ ๋คํธ๋ฅผ ์ธ ์ฐจ๋ก ๋์ ธ ๊ทธ ์ ์์ ํฉ๊ณ๋ก ์ค๋ ฅ์ ๊ฒจ๋ฃจ๋ ๊ฒ์์ผ๋ก, ๋ชจ๋๊ฐ ๊ฐ๋จํ ์ฆ๊ธธ ์ ์๋ค.
๊ฐ ์ ์ฌํ ๋ฌด์ง๋ ์ฝ๋ฉ ์ค๋ ฅ์ ์ธ์ ๋ฐ์ ๊ฒ์์ ํต์ฌ ๋ถ๋ถ์ธ ์ ์ ๊ณ์ฐ ๋ก์ง์ ๋งก๊ฒ ๋์๋ค. ๋คํธ ๊ฒ์์ ์ ์ ๊ณ์ฐ ๋ก์ง์ ์๋์ ๊ฐ๋ค.
- ๋คํธ ๊ฒ์์ ์ด 3๋ฒ์ ๊ธฐํ๋ก ๊ตฌ์ฑ๋๋ค.
- ๊ฐ ๊ธฐํ๋ง๋ค ์ป์ ์ ์๋ ์ ์๋ 0์ ์์ 10์ ๊น์ง์ด๋ค.
- ์ ์์ ํจ๊ป Single(S), Double(D), Triple(T) ์์ญ์ด ์กด์ฌํ๊ณ ๊ฐ ์์ญ ๋น์ฒจ ์ ์ ์์์ 1์ ๊ณฑ, 2์ ๊ณฑ, 3์ ๊ณฑ (์ ์1 , ์ ์2 , ์ ์3 )์ผ๋ก ๊ณ์ฐ๋๋ค.
- ์ต์ ์ผ๋ก ์คํ์() , ์์ฐจ์(#)์ด ์กด์ฌํ๋ฉฐ ์คํ์() ๋น์ฒจ ์ ํด๋น ์ ์์ ๋ฐ๋ก ์ ์ ์ป์ ์ ์๋ฅผ ๊ฐ 2๋ฐฐ๋ก ๋ง๋ ๋ค. ์์ฐจ์(#) ๋น์ฒจ ์ ํด๋น ์ ์๋ ๋ง์ด๋์ค๋๋ค.
- ์คํ์()์ ์ฒซ ๋ฒ์งธ ๊ธฐํ์์๋ ๋์ฌ ์ ์๋ค. ์ด ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์คํ์()์ ์ ์๋ง 2๋ฐฐ๊ฐ ๋๋ค. (์์ 4๋ฒ ์ฐธ๊ณ )
- ์คํ์()์ ํจ๊ณผ๋ ๋ค๋ฅธ ์คํ์()์ ํจ๊ณผ์ ์ค์ฒฉ๋ ์ ์๋ค. ์ด ๊ฒฝ์ฐ ์ค์ฒฉ๋ ์คํ์(*)์ ์๋ 4๋ฐฐ๊ฐ ๋๋ค. (์์ 4๋ฒ ์ฐธ๊ณ )
- ์คํ์(*)์ ํจ๊ณผ๋ ์์ฐจ์(#)์ ํจ๊ณผ์ ์ค์ฒฉ๋ ์ ์๋ค. ์ด ๊ฒฝ์ฐ ์ค์ฒฉ๋ ์์ฐจ์(#)์ ์ ์๋ -2๋ฐฐ๊ฐ ๋๋ค. (์์ 5๋ฒ ์ฐธ๊ณ )
- Single(S), Double(D), Triple(T)์ ์ ์๋ง๋ค ํ๋์ฉ ์กด์ฌํ๋ค.
- ์คํ์, ์์ฐจ์(#)์ ์ ์๋ง๋ค ๋ ์ค ํ๋๋ง ์กด์ฌํ ์ ์์ผ๋ฉฐ, ์กด์ฌํ์ง ์์ ์๋ ์๋ค.
0~10์ ์ ์์ ๋ฌธ์ S, D, T, *, #๋ก ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ด ์ ๋ ฅ๋ ์ ์ด์ ์๋ฅผ ๋ฐํํ๋ ํจ์๋ฅผ ์์ฑํ๋ผ.
์ ๋ ฅ ํ์
- "์ ์|๋ณด๋์ค|[์ต์ ]"์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด 3์ธํธ.
์) 1S2D*3T- ์ ์๋ 0์์ 10 ์ฌ์ด์ ์ ์์ด๋ค.
- ๋ณด๋์ค๋ S, D, T ์ค ํ๋์ด๋ค.
- ์ต์ ์ *์ด๋ # ์ค ํ๋์ด๋ฉฐ, ์์ ์๋ ์๋ค.
์ถ๋ ฅ ํ์
3๋ฒ์ ๊ธฐํ์์ ์ป์ ์ ์ ํฉ๊ณ์ ํด๋นํ๋ ์ ์๊ฐ์ ์ถ๋ ฅํ๋ค.
์) 37
์ ์ถ๋ ฅ ์์
์์ | dartResult | answer | ์ค๋ช |
---|---|---|---|
1 | 1S2D*3T | 37 | 1^1 x 2 + 2^2 x 2 + 3^3 |
2 | 1D2S#10S | 9 | 1^2 + 2^1 x (-1) + 10^1 |
3 | 1D2S0T | 3 | 1^2 + 2^1 + 0^3 |
4 | 1S2T3S | 23 | 1^1 x 2 x 2 + 2^3 x 2 + 3^1 |
5 | 1D#2S*3S | 5 | 1^2 x (-1) x 2 + 2^1 x 2 + 3^1 |
6 | 1T2D3D# | -4 | 1^3 + 2^2 + 3^2 x (-1) |
7 | 1D2S3T* | 59 | 1^2 + 2^1 x 2 + 3^3 x 2 |
function solution(dartResult) {
let dart = dartResult.split('');
let score = 0, record = 0, result = 0
for(let i = 0; i < dart.length; i++){
if(dart[i] == 'S' || dart[i] == 'D' || dart[i] == 'T'){
if(dart[i] == 'S'){
score = Math.pow(score, 1)
}else if(dart[i] == 'D') {
score = Math.pow(score, 2)
}else{
score = Math.pow(score, 3)
}
}else if(dart[i] == '*' || dart[i] == '#'){
if(dart[i] == '*'){
score *= 2
result += record
// ์ ๊น์ง์ ์ ์๋ฅผ ํ๋ฒ๋ ๋ํจ์ผ๋ก *2์ ํจ๊ณผ๊ฐ ๋์จ๋ค.
}else{
score *= (-1)
}
record = 0
}else {
result += score // ์ซ์๊ฐ ๋ค์ด์ฌ๋ ์ด์ ๊น์ง์ ๊ณ์ฐ ์ ์ฅ
record = score // *์ผ ๊ฒฝ์ฐ์ ์ฌ์ฉํจ์ผ๋ก ์ ์ฅ
if(dart[i] == '1' && dart[i+1] == '0'){
score = 10
// ์ซ์๊ฐ 10๊น์ง์ด๋ฏ๋ก ๋์๋ฆฟ์๋ 10๋ฐ์ ์์
++i // 10์ ์ซ์๊ฐ ๋์ธ๋ฑ์ค๋ฅผ ์ฐจ์งํจ์ผ๋ก ์ธ๋ฑ์ค์ 1์ ๋ํด์ค๋ค.
}else{
score = Number(dart[i])
}
}
}
result += score // ๋ง์ง๋ง์ผ๋ก ๊ณ์ฐ๋๊ฒ ์ ์ฉ์ด ๋์ง ์์์ ๋ฐ๋ก ์ ์ฅ
return result
}