코딩테스트/Programmers

크레인 인형 뽑기 (JS)

동띵 2025. 1. 5. 15:38

https://school.programmers.co.kr/learn/courses/30/lessons/64061

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

function solution(board, moves) {
    let answer = 0;
    const stack = [];
    
    // 계속 다섯번을 돌며 가장 먼저 나오는 수를 뽑아 스택에 넣고 그 자리를 0으로 바꿈
    for (const move of moves) {
        const moveIdx = move-1; // board에 인덱스로 접근하기 위해 1로 빼줌
        for (let i=0; i<board.length; i++) {
            if (board[i][moveIdx] !== 0) {
                const currentNum = board[i][moveIdx];
                
                // 스택에 값 있으면 
                if (stack.length > 0) {
                    // 값이 같아서 터뜨릴 수 있는 조건에 만족하면 2개 카운트
                    if (stack[stack.length-1] === currentNum) {
                        stack.pop();
                        answer += 2
                    } else {
                        stack.push(currentNum); // 스택에 넣음
                    }
                } else {
                    // 비교할 거 없으면 그냥 스택에 넣음
                    stack.push(currentNum);
                }
                // 해당 인덱스 값 0으로 바꾸고 다음 단계로 이동
                board[i][moveIdx] = 0;
                break;
                
            }
        }
    }
    
    return answer;
}

'코딩테스트 > Programmers' 카테고리의 다른 글

오픈 채팅방 (JS)  (1) 2025.01.06
표 편집 (JS)  (1) 2025.01.05
방문 길이 (JS)  (0) 2025.01.05
실패율 (JS)  (0) 2025.01.05
최소직사각형 (JS)  (0) 2024.06.02