[JAVA] 프로그래머스 Lv1. 크레인 인형뽑기 게임 - 다른풀이(stack)
import java.util.Stack;
class Solution {
public int solution(int[][] board, int[] moves) {
int answer = 0;
Stack<Integer> stack = new Stack<>();
for (int move : moves) {
for (int j = 0; j < board.length; j++) {
if (board[j][move - 1] != 0) { // board에 인형이 들어있을 때
// stack이 비어있을 때,
if (stack.isEmpty()) {
stack.push(board[j][move - 1]);
board[j][move - 1] = 0;
break;
}
// stack의 상단 요소와 board값이 같을 때
if (board[j][move - 1] == stack.peek()) { // .peek() => 스택의 상단 요소를 반환한다.
stack.pop(); // .pop() => 스택의 상단 요소를 반환하고 제거한다.
answer += 2;
} else
stack.push(board[j][move - 1]); // stack 상단 요소와 board값이 다를 때, stack에 board값 삽입.
board[j][move - 1] = 0; // board의 인형을 꺼냈으므로 0 대입.
break;
}
}
}
return answer;
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[JAVA] 프로그래머스 Lv1.폰켓몬 (0) | 2021.04.11 |
---|---|
[JAVA] 프로그래머스 Lv1. 실패율 (0) | 2020.11.19 |
[JAVA] 프로그래머스 Lv1. 크레인 인형뽑기 게임 (0) | 2020.11.18 |
[JAVA] 프로그래머스 Lv1. 비밀지도 - 다른풀이(비트연산자) (0) | 2020.11.13 |
[JAVA] 프로그래머스 Lv1. 비밀지도 (0) | 2020.11.12 |