import java.util.Stack;
class Solution {
public static int solution(int[][] board, int[] moves) {
Stack<Integer> basket = new Stack<>();
int answer = 0;
for (int i = 0; i < moves.length; i++) {
int movePosition = moves[i] - 1;
for (int j = 0; j < board.length; j++) {
if (board[j][movePosition] != 0) {
int dollNumber = board[j][movePosition];
answer += pushBasket(basket, dollNumber);
board[j][movePosition] = 0;
break;
}
}
}
return answer;
}
public static int pushBasket(Stack<Integer> basket, int dollNumber) {
if (!basket.empty()) {
int peek = basket.peek();
if (dollNumber == peek) {
basket.pop();
return 2;
} else {
basket.push(dollNumber);
}
} else {
basket.push(dollNumber);
}
return 0;
}
}
인형을 담는공간인 basket을 Stack 형태로 만들었다.
Stack에 넣기전 똑같은 인형 2개인지 검사를 한 후 처리를 해준다.
'알고리즘 & 자료구조 > 프로그래머스' 카테고리의 다른 글
단체 사진 찍기 (0) | 2022.04.13 |
---|---|
카카오 프렌즈 컬러링북 (0) | 2022.04.02 |
숫자 문자열과 영단어 (0) | 2022.03.29 |
오픈채팅방 (0) | 2022.03.28 |
문자열 압축 [Java] (0) | 2022.03.12 |