https://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
스택으로 바구니를 만들고
바구니에 있는 인형과 뽑을 인형을 비교해서 바구니 제일 위에 있는 인형이면 2개 같이 터트림
public static int solution(int[][] board, int[] moves) {
int answer = 0;
Stack<Integer> stack = new Stack<>(); // 바구니
stack.push(0); // 값 같은지 비교하기 위해 초기값 필요함
for(int move : moves) {
for(int i=0; i<board.length; i++) {
if(board[i][move-1] !=0 ) { // 0이 아니라면 인형이 있음
if(stack.peek() == board[i][move-1]) { // 바구니에 넣을 인형이 바구니에 있는 인형과 같다면
stack.pop(); // 바구니에서 제거
answer+=2; // 사라진 인형 2개 추가
} else { // 바구니에 있는 인형이 아니라면
stack.push(board[i][move-1]); // 바구니에 넣음
}
board[i][move-1] = 0; // 뽑은 인형 자리 0으로 바꿔줌
break;
}
}
}
return answer;
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스]연습문제>2016년 Java (0) | 2021.06.29 |
---|---|
[프로그래머스]Summer/Winter Coding(~2018)>예산 Java (0) | 2021.06.29 |
[프로그래머스]탐욕법>체육복 Java (0) | 2021.06.28 |
[프로그래머스]연습문제>가운데 글자 가져오기 Java (0) | 2021.06.27 |
[프로그래머스]연습문제>직사각형 별찍기 Java (0) | 2021.06.27 |