프로그래머스 크레인 인형뽑기 Java

Android Chen·2021년 11월 2일
0

문제설명

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

풀이방법

  • 스택 한개를 만들고 하나씩 꺼내서 스택에 넣을 때 스택의 peek값이 현재 넣으려고 하는 값과 같으면 2개를 터뜨리면 된다. 뽑기 기계가 비어있을 때 아무것도 안 꺼내는 것만 조심하면 된다.

코드

import java.util.*;
class Solution {
    public int solution(int[][] board, int[] moves) {
        Stack<Integer> st = new Stack<>();
        int cnt=0;
        for(int t : moves){
            int pick=-1;
            for(int i=0;i<board.length;i++){
                if(board[i][t-1]!=0){
                   pick = board[i][t-1];
                    board[i][t-1] = 0;
                    break;
                }
            }
            if(!st.isEmpty()){
                if(st.peek()==pick){
                    st.pop();
                    cnt += 2;
                }
                else if(pick!=-1){
                    st.push(pick);
                }
            }
            else if(pick!=-1){
                st.push(pick);
            }
        }
        return cnt;
    }
}
profile
https://github.com/Userz1-redd

0개의 댓글