반응형
문제
- 링크: https://school.programmers.co.kr/learn/courses/30/lessons/64061?language=java
풀이
더보기
더보기
import java.util.Stack;
class Solution {
public int solution(int[][] board, int[] moves) {
Stack<Integer>[] lanes = new Stack[board.length];
for (int i = 0; i < lanes.length; ++i) {
lanes[i] = new Stack<>();
}
for (int i = board.length - 1; i >= 0; --i) {
for (int j = 0; j < board[i].length; ++j) {
if (board[i][j] > 0) {
lanes[j].push(board[i][j]);
}
}
}
Stack<Integer> bucket = new Stack<>();
int answer = 0;
for (int move: moves) {
if (!lanes[move - 1].isEmpty()) {
int doll = lanes[move - 1].pop();
if (!bucket.isEmpty() && bucket.peek() == doll) {
bucket.pop();
answer += 2;
}
else {
bucket.push(doll);
}
}
}
return answer;
}
}
반응형
'코딩테스트 문제집 > Programmers(Lv1)' 카테고리의 다른 글
[Programmers] Lv1: 두 개 뽑아서 더하기(68644) (0) | 2025.02.11 |
---|---|
[Programmers] Lv1: 키패드 누르기(67256) (0) | 2025.02.11 |
[Programmers] Lv1: 실패율(42889) (0) | 2025.02.11 |
[Programmers] Lv1: 체육복(42862) (0) | 2025.02.11 |
[Programmers] Lv1: 모의고사(42840) (0) | 2025.02.11 |