반응형
문제 설명
- 생략
풀이 방법
- 스택을 이용한 문제이다.
- 먼저 board 배열을 탐색하여, 인형을 뽑는다.
- 뽑는 이용을 스택에 push하는데, 비어있을 경우 그냥 push, 아닐 경우 top이랑 비교해서 같으면 pop, 다르면 push 해준다.
- 정답에 x2를 한 이유는, pop한 개수가 아닌 없어진 인형의 개수이기 때문이다.
알아야되는 개념
- 스택
- 반복문
import java.util.*;
class Solution {
public int solution(int[][] board, int[] moves) {
int answer = 0;
Stack<Integer> st = new Stack<>();
for (int i=0;i<moves.length;i++){
int now = moves[i] - 1;
for(int j=0;j< board.length;j++){
if (board[j][now] > 0){
if(!st.empty()) {
if(st.peek() == board[j][now]) {
st.pop();
answer++;
}
else
st.push(board[j][now]);
}
else
st.push(board[j][now]);
board[j][now] = 0;
break;
}
}
}
return answer * 2;
}
}
반응형
'알고리즘 > programmers' 카테고리의 다른 글
[프로그래머스]2016년[JAVA, 자바] (0) | 2021.03.22 |
---|---|
[프로그래머스]신규 아이디 추천[JAVA, 자바] (0) | 2021.03.22 |
[프로그래머스]모의고사[JAVA, 자바] (0) | 2021.03.22 |
[프로그래머스]k번째수[JAVA, 자바] (0) | 2021.03.19 |
[프로그래머스]완주하지 못한 선수[JAVA, 자바] (0) | 2021.03.19 |