스택을 이용하는 아주 간단한 문제입니다.
import java.util.*;
class Solution {
public static int solution(int[][] board, int[] moves) {
int answer = 0;
Stack<Integer> s = new Stack<>();
for(int m : moves) {
for(int i = 0; i < board.length; i++) {
if(board[i][m-1] == 0) continue;
if(!s.isEmpty() && s.peek() == board[i][m-1]) {
s.pop();
answer += 2;
}else s.push(board[i][m-1]);
board[i][m-1] = 0;
break;
}
}
return answer;
}
}
moves 배열에 들어오는 값을 따라 해당하는 인형의 번호를 찾아서 스택에 넣습니다. 이 때 만약 스택의 top에 있는 친구랑 막 들어오려는 친구랑 같다? 그럼 고냥 바로 탑에 있는 친구를 빼고 answer+=2 하면 되는 겁니다.
감사함니다. 하하!
'Algorithm > Programmers' 카테고리의 다른 글
[해시] 베스트앨범 - Java (0) | 2020.11.19 |
---|---|
[2019 KAKAO BLIND RECRUITMENT][구현] 블록 게임 - Java (0) | 2020.09.16 |
[2019 KAKAO BLIND RECRUITMENT][구현] 길 찾기 게임 - Java (1) | 2020.09.10 |
[2019 KAKAO BLIND RECRUITMENT][조합] 후보키 - Java (0) | 2020.09.08 |
[2019 KAKAO BLIND RECRUITMENT][PQ] 실패율 - Java (0) | 2020.09.08 |