ALGORITHM/PROGRAMMERS
[프로그래머스] 크레인 인형뽑기 게임
0298
2020. 11. 7. 21:04
programmers.co.kr/learn/courses/30/lessons/64061?language=java
코딩테스트 연습 - 크레인 인형뽑기 게임
[[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4
programmers.co.kr
2020-11-07
import java.util.ArrayList;
class Solution {
public static int cpboard[][], cpmove[], blen, count;
public static ArrayList<Integer> list;
public static void search(int x) {
for(int i = 0; i < blen; i++) {
if(cpboard[i][x] > 0) {
list.add(cpboard[i][x]);
cpboard[i][x] = 0;
break;
}
}
}
public static void checkRemove() {
for(int i = 1; i < list.size(); i++) {
if(list.get(i) == list.get(i-1)) {
list.remove(i);
list.remove(i-1);
count+=2;
}
}
}
public int solution(int[][] board, int[] moves) {
cpboard = board;
cpmove = moves;
count = 0;
list = new ArrayList<Integer>();
blen = board[0].length;
for(int i = 0; i < moves.length; i++) {
search(moves[i]-1);
checkRemove();
}
return count;
}
}
1. moves 배열에 받은 입력값대로 배열의 줄을 탐색하면서, 가장 윗줄에 있는 값을 arraylist에 넣고 원래 배열 값을 0으로 바꾼다.
2. 바구니에 값이 있다면, 현재 값과 그 전 값을 비교하여 같은 경우 둘 다 제거하고 +2 카운트를 한다.