[ Programmers ] 2019 카카오 겨울 인턴십 - 크레인 인형뽑기 게임 (Java)

ma.caron_g·2021년 12월 5일
0

Lv.1 - Programmers (완성)

목록 보기
70/74
post-thumbnail

1. Problem 📃

[ 2019 카카오 겨울 인턴십 - 크레인 인형뽑기 게임 ]

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



2. Constraint 🔗



3. Solution 🔑

  1. 인형을 담아줄 리스트를 하나 선언해주고, 인형의 개수를 세어줄 변수를 선언 (개수를 세어줄 값은 인덱스를 직관적으로 보기 위해 -1로 초기화)
  2. 배열 moves의 길이 만큼 for문을 돌리고 line변수를 통해 몇 번째 라인의 인형을 뽑을지 담는다.
  3. 보드가 비어있지 않으면 리스트에 담아준다. 그 후 해당 board배열은 0값으로 바꾸어 빈칸임을 표시하고 인형의 개수를 나타내는 변수의 값을 증가(++) 시켜준다.
  4. 인형이 1개 이상 있는 경우 들어온 인혀이랑 그 전에 들어온 인형이랑 비교하여 같은 인형이라면 리스트에 있는 배열 두개를 지우고, 인형의 개수 또한 2개 지우며, answer에 2를 증가 시키며 최종적인 answer값을 리턴.

4. Code 💻

import java.util.ArrayList;

class Solution {
	public int solution(int[][] board, int[] moves) {
        int answer = 0;
        int dollCount = -1;
        ArrayList<Integer> getDoll = new ArrayList<Integer>();
        
        for(int i=0; i<moves.length; i++) {
        	int line = moves[i] - 1;
        	for(int j=0; j<board.length; j++) {
        		if(board[j][line] != 0) {
            		getDoll.add(board[j][line]);
            		board[j][line] = 0;
            		dollCount++;
            		if(dollCount>0) {
                		if(getDoll.get(dollCount) == getDoll.get(dollCount-1)) {
                			getDoll.remove(dollCount);
                			getDoll.remove(dollCount-1);
                			dollCount -= 2;
                			answer += 2;
                		}
                	}
            		break;
            	}
        	}
        }
        return answer;
    }
}

5. Growth 🍄

스택 개념을 배웠으니 스택으로도 다시 한 번 풀어봐야겠다.
profile
다른 사람이 만든 것을 소비하는 활동보다, 내가 생산적인 활동을 하는 시간이 더 많도록 생활화 하자.

0개의 댓글