알고리즘

프로그래머스 JS | [1차] 다트게임

3jun 2022. 6. 30. 21:49
출처 : 프로그래머스 코딩테스트 연습 - 2018 KAKAO BLIND RECRUITMENT - [1차] 다트게임

https://programmers.co.kr/learn/courses/30/lessons/17682

 

코딩테스트 연습 - [1차] 다트 게임

 

programmers.co.kr

✅  Solution

function solution(dartResult) {
    const dartArr = dartResult.split('');
    const stack = [];
    const sum = [];

    for( let i = 0; i < dartArr.length; i++) {
        if( !isNaN(dartArr[i])) {
            if(dartArr[i] === '0' && dartArr[i -1] === '1') {
                stack.pop();
                stack.push(10);
            } else {
            if( stack.length > 0) sum.push(stack.pop());
                stack.push(+dartArr[i])
            }
        }
        if(dartArr[i] === 'S') stack[0] = Math.pow(stack[0],1);
        if(dartArr[i] === 'D') stack[0] = Math.pow(stack[0],2);
        if(dartArr[i] === 'T') stack[0] = Math.pow(stack[0],3);
        if(dartArr[i] === '*') {
            stack[0] = stack[0] * 2;
            if(sum.length > 0) {
                const num = sum.pop() * 2;
                sum.push(num);
            }
        }
        if(dartArr[i] === '#') {
            stack[0] = stack[0] * -1;
        }
    }
    if(stack.length > 0) sum.push(stack[0])
    
    return sum.reduce((acc,cur) => acc + cur);
}
참고
 

카카오 신입 공채 1차 코딩 테스트 문제 해설

‘블라인드’ 전형으로 실시되어 시작부터 엄청난 화제를 몰고 온 카카오 개발 신입 공채. 그 첫 번째 관문인 1차 코딩 테스트가 지난 9월 16일(토) 오후 2시부터 7시까지 장장 5시간 동안 온라인

tech.kakao.com

 - Stack 구조를 활용한 풀이

 

[알고리즘] [1차] 다트 게임-JavaScript

Algorithm Problem with JavaScript — 28day다트 게임카카오톡에 뜬 네 번째 별! 심심할 땐? 카카오톡 게임별~카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에

velog.io

- 정규표현식과 match 메소드를 활용한 풀이

 

[알고리즘] 프로그래머스 - 다트 게임 with node.js

들어가며 518일 동안 단 하루도 빠지지 않고 알고리즘을 풀었다는 글을 본 적이 있습니다. 이 글을 보면서, 생각해보면 하루에 혼자만의 힘으로 다른 코드를 참고하지 않고 코드를 짠 경험이 얼

overcome-the-limits.tistory.com