Lv1-크레인 인형뽑기 게임

Dev StoryTeller·2020년 12월 11일
0

0. 문제

https://programmers.co.kr/learn/courses/30/lessons/64061
위 주소를 참조


1. 풀이

public int solution(int[][] board, int[] moves) {
        int count = 0;
        
        // 인형 바구니 생성
        Stack<Integer> stack = new Stack<>();
        stack.push(0);
        
        // 인형을 뽑음
        for(int crain_pos : moves) {
            // 인형
            int item = 0;
            
            for(int j=0; j<board[0].length; j++){
                if(board[j][crain_pos-1] != 0) {
                    item = board[j][crain_pos-1];
                    board[j][crain_pos-1] = 0;
                    
                    // 같은 인형이 있으면 삭제
                    if(stack.peek() == item) {
                        stack.pop();
                        count += 2;
                    }
                    
                    // 없으면 그냥 넣음
                    else {
                        stack.push(item);
                    }
                    break;
                }
            }
        }
        return count;
    }

2. 설명

인형 담는 바구니를 Stack으로 설정하여 문제를 해결하였다.


3. 결론

문제 자체가 명확하여 코드를 짜는 것은 어렵지 않았으나,
crain_pos를 그대로 board 인덱스로 가져오는 바람에 IndexOutOfBounds오류가 났다ㅠㅜ

profile
개발을 이야기하는 개발자입니다.

0개의 댓글