java 프로그래머스 _크레인인형뽑기
2021. 5. 5. 00:49ㆍ프로그래머스 알고리즘/코딩 테스트 문제
반응형
출제 링크 : programmers.co.kr/learn/courses/30/lessons/64061
코딩테스트 연습 - 크레인 인형뽑기 게임
[[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
import java.util.*;
class Solution {
public int solution(int[][] board, int[] moves) {
int answer = 0;
List<Queue<Integer>> boardQue = new ArrayList<Queue<Integer>>();
Stack<Integer> out = new Stack<Integer>();
for (int i = 0; i < board.length; i++) {
Queue<Integer> dammy = new LinkedList<Integer>();
// System.out.println("===========" + i + "번째=========");
for (int j = 0; j < board.length; j++) {
if (board[j][i] != 0) {
dammy.add(board[j][i]);
// System.out.println(board[j][i]);
}
}
// System.out.println("======================");
boardQue.add(dammy);
}
for (int i = 0; i < moves.length; i++) {
int num = moves[i] - 1;
// System.out.println("input : " + boardQue.get(num).peek());
if (out.isEmpty()) {
out.add(boardQue.get(num).poll());
} else if (!boardQue.get(num).isEmpty()) {
// System.out.println("===========================");
// System.out.println("out peek : " + out.peek());
// System.out.println("boardQue peek : " + boardQue.get(num).peek());
if (out.peek() == boardQue.get(num).peek()) {
out.pop();
boardQue.get(num).poll();
answer += 2;
} else {
int temp = boardQue.get(num).poll();
// System.out.println("저장 num : " + temp);
out.add(temp);
// System.out.println("다르므로 out 저장");
}
// System.out.println("===========================");
}
}
return answer;
}
}
반응형