알고리즘 공부/프로그래머스

프로그래머스 코딩테스트 연습 - 2019 카카오 개발자 겨울 인턴십 - 크레인 인형뽑기 게임

HRuler 2020. 9. 9. 23:48

1. 나의 풀이

import java.util.Stack;

class Solution {
    public int solution(int[][] board, int[] moves) {
        int answer = 0;
        Stack <Integer> stack = new Stack<>();
            for(int i = 0; i < moves.length; i = i + 1) {
                for(int j = 0; j < board.length; j = j + 1) {
                    System.out.println(board[j][moves[i]-1]);
                    if(board[j][moves[i]-1] == 0) {
                        continue;
                    }else if(stack.isEmpty() == true) {
                        stack.push(board[j][moves[i]-1]);
                        board[j][moves[i]-1] = 0;
                        break;
                    }else if(stack.peek() == board[j][moves[i]-1]){
                        board[j][moves[i]-1] = 0;
                        stack.pop();
                        answer = answer + 2;
                        break;
                    }else {
                        stack.push(board[j][moves[i]-1]);
                        board[j][moves[i]-1] = 0;
                        break;
                    }
                }
            }
        return answer;
    }
}

 - 최초 스택을 사용하지 않고 해결하려 했지만 다른 예시들에 오답이 나와 Stack 함수를 사용하여 해결