알고리즘/시뮬레이션
[프로그래머스]카카오인턴십_크레딧인형뽑기
안잡아모찌
2021. 4. 20. 22:11
programmers.co.kr/learn/courses/30/lessons/64061
코딩테스트 연습 - 크레인 인형뽑기 게임
[[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4
programmers.co.kr
시뮬레이션 적인 문제
인형뽑기 + Stack에 대한 활용 ( 예외처리에 대한 부분 value가 0 일때 )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
import java.util.Stack;
class Solution {
public int pullup(int row,int N,int map[][]){
//row번째 열에서 어떤 인형을 뽑는지 (0나오면 안뽑힌거)
int result = 0;
for(int i=0; i<N; i++){
if(map[i][row] != 0 ){
result = map[i][row];
map[i][row] = 0 ;
break;
}
}
return result;
}
public int solution(int[][] board, int[] moves) {
Stack<Integer> st = new Stack();
int answer = 0;
int N = board.length;
for(int i=0;i<moves.length;i++){
int value = pullup(moves[i]-1,N,board);
if(value == 0 ) continue;
if(!st.isEmpty()){
int top = st.peek();
if(top == value){
//같은게 2개있으면
answer += 2;
st.pop();
}else{
st.push(value);
}
}else{st.add(value);}
}
return answer;
}
}
|
cs |