반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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 31
Archives
Today
Total
관리 메뉴

undefined

[프로그래머스] 다트게임 -자바스크립트(JS) 본문

Coding Test

[프로그래머스] 다트게임 -자바스크립트(JS)

JavaScripter 2022. 6. 26. 07:11
반응형

문제 설명


문제 풀이

function solution(dartResult) {
    let answer = []
    let score = 0

    
    for(let i=0;i<dartResult.length;i++) {
        if(dartResult[i] <= 9 && dartResult[i] >= 0) {
            if(dartResult[i] == 1 && dartResult[i+1] == 0) {
            score = 10
            i++
        } else {
            score = dartResult[i]
        } 
        } else if(dartResult[i] === "S") {
            answer.push(score ** 1)
        } else if(dartResult[i] === "D") {
            answer.push(score ** 2)
        } else if(dartResult[i] === "T") {
            answer.push(score ** 3)
        } else if(dartResult[i] === "*") {
            answer[answer.length-2] *=2
            answer[answer.length-1] *=2
        } else if(dartResult[i] === "#") {
            answer[answer.length-1] *=-1
        }
    }

    return answer.reduce((p,v) => p+v)

    
}

1. 전 값을 곱하거나 뺄 수 있으니 미리 더해주지 말고 배열에 저장

 

2. dartResult[i]가 숫자일 경우에 기본적으로 score에 저장 단, 10인 경우를 고려하여 1일때 다음값이 0 인경우에 score=10

 

3. 문자일 경우 정의

 

4. reduce를 활용하여 answer의 값 모두 더하기


배운 점

반응형
Comments