프로그래머스 레벨1 다 풀기를 시작했다.
그 첫 문제인 다트게임은 아래와 같다.
1. 배수를 더해주는 과정에서 *= 2 가 아닌 * 2로 한 점
2. Math.pow 의 인자를 한 개만 넣었던 점
3. 점수가 1 ~ 9까지 있는줄 알았으나 10까지 있었던 점(두자리 수)
function solution(dartResult) {
var answer = 0;
let arr = dartResult.split('')
let result = []
for(let i = 0; i < arr.length; i++) {
if(arr[i] === '*') {
let len = result.length
if(result[len - 2] !== undefined) {
result[len - 2].multiple *= 2
result[len - 1].multiple *= 2
continue
}
else {
result[len - 1].multiple *= 2
continue
}
}
if(arr[i] === '#') {
let len = result.length
result[len - 1].multiple *= -1
continue
}
if(arr[i] === '1' & arr[i+1] === '0') {
result.push({ score: Math.pow(10, (arr[i+2] === 'T' ? 3 : arr[i+2] === 'D'? 2 : 1)), multiple: 1})
i += 2
continue
}
result.push({ score: Math.pow(arr[i], (arr[i+1] === 'T' ? 3 : arr[i+1] === 'D'? 2 : 1)), multiple: 1})
i++
continue
}
result.forEach(round => {
answer += round.score * round.multiple
})
return answer
}
전부 주관적인 관점에서 회고하며 작성된 내용 입니다.