[프로그래머스] 크레인 인형뽑기 게임 JAVA

AMUD·2022년 8월 27일
0

Algorithm

목록 보기
33/78

문제


문제링크

접근

  • 2차원 배열에서 인덱스를 활용하여 접근하는 것만 가능하다면 평이한 수준의 문제
  • 스택 간단 활용

소스 코드

import java.util.*;

class Main {
    public static void main(String[] args) throws Exception {
        int[][] board = { { 0, 0, 0, 0, 0 }, { 0, 0, 1, 0, 3 }, { 0, 2, 5, 0, 1 }, { 4, 2, 4, 4, 2 },
                { 3, 5, 1, 3, 1 } };
        int[] moves = {1,5,3,5,1,2,1,4};

        Solution sol = new Solution();
        System.out.println("result : " + sol.solution(board, moves));
    }
}

class Solution {
    public int solution(int[][] board, int[] moves) {
        int answer = 0;
        int len = board.length;
        Stack<Integer> stack = new Stack<>();

        for (int move : moves) {
            for (int i = 0; i < len; i++) {
                if (board[i][move-1] != 0) {
                    int num = board[i][move-1];
                    if (stack.empty() || stack.peek() != num)
                        stack.add(num);
                    else {
                        answer += 2;
                        stack.pop();
                    }
                    board[i][move-1] = 0;
                    break;
                }
            }
        }
        return answer;
    }
}
profile
210's Velog :: Ambition Makes Us Diligent

0개의 댓글