조앤의 기술블로그

[프로그래머스 / 카카오] (틀림)크레인 인형뽑기 게임 본문

Programming/프로그래머스

[프로그래머스 / 카카오] (틀림)크레인 인형뽑기 게임

쬬앤 2020. 4. 4. 10:54

[문제접근]

스택을 이용해야겠다고 생각했다. 

스택을 차례대로 어떻게 구현하면 좋을까 생각하다가 해시맵을 이용해서 구현해보기로 했다. 

(근데 너무 어렵게 접근한거 같기도..?)

 

[1차코드] - 실패

import java.util.*;
class Solution {
    public int solution(int[][] board, int[] moves) {
        int answer = 0;
        Map<Integer, Stack<Integer>> box = new HashMap<>();
		for(int i = 0; i < board.length; i++) {
			Stack<Integer> stack = new Stack<>();
			for(int j = 0; j < board[i].length; j++) {
				stack.add(board[i][j]);
			}
			box.put(i+1, stack);
		}
		

		Stack<Integer> newBox = new Stack<>();
		for(int m : moves){
            int tmp = box.get(m).pop();
            //System.out.println(tmp);
            if(tmp == 0) continue;
            if(!newBox.isEmpty()){
                if(newBox.peek() == tmp){
                    newBox.pop();
                    answer += 2;
                }else
                    newBox.add(tmp);
            }else{
                newBox.add(tmp);
            }
        }
        
        
        return answer;
    }
}

[문제점]

알고리즘에 어떤 문제가 있는건지 모르겠다 ㅠㅠ... 

뭐가 틀린걸까...