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
- 인형을 담는 바구니는 stack으로 구현
- 인형을 뽑아서 바구니에 넣기 전에 peek로 동일한 인형을 뽑았는지 확인을 한다. 동일한 answer를 2 증가시키고, pop 해서 동일한 인형을 제거
import java.util.*;
class Solution {
public int solution(int[][] board, int[] moves) {
int answer = 0;
Stack<Integer> stk = new Stack<Integer>(); // 바구니
for (int i = 0; i < moves.length; i++) { // 이동시키기
int crainPosition = moves[i] - 1;
for (int j = 0; j < board.length; j++) {
if(board[j][crainPosition] != 0) {
int doll = board[j][crainPosition]; // 뽑은 인형
board[j][crainPosition] = 0; // 뽑은 자리는 빈자리로 설정
// 바구니에 넣기
if(stk.isEmpty()) { // 비어있으면 그냥 넣음
stk.push(doll);
} else { // 비어있지 않으면, 어떤 인형인지 확인
if(doll == stk.peek()) { // 같은 인형이면
answer+=2; // 인형제거는 항상 2개씩임
stk.pop();
} else {
stk.push(doll); // 다른 인형이면
}
}
break;
}
}
}
return answer;
}
}
'JAVA > 프로그래머스' 카테고리의 다른 글
34. LEVEL1 - 실패율 (0) | 2021.08.27 |
---|---|
32. LEVEL1 - 비밀지도 (0) | 2021.08.26 |
32. LEVEL1 - 키패드 누르기 (0) | 2021.08.26 |
31. LEVEL1 - 직업군 추천하기 (0) | 2021.08.26 |
30. LEVEL 1 - 숫자 문자열과 영단어 (0) | 2021.08.25 |