Lv.1-[크레인 인형뽑기]
문제
코드
import java.util.Stack;
class Solution {
public int solution(int[][] board, int[] moves) {
Stack<Integer> stack = new Stack<>();
int count=0;
stack.push(0);
int N = board.length;
for(int i=0; i<moves.length; i++){
for(int j=0; j<N; j++){
int n = board[j][moves[i]-1];
if(n!=0){ // 데이터가 있을 경우
if(stack.peek()==n){
stack.pop();
count++;
}else{
stack.push(n);
}
board[j][moves[i]-1]=0; // 데이터 사용했다는 뜻으로 0으로 표시
break; // 한번만 사용하기때문에 반복문 종료
}
}
}
int answer = count*2;// 없어진 인형의 개수이기 때문에 수행한 수의 X2
return answer;
}
}
알고 넘어가기
Stack의 선언 :
java Stack<Data type> stack = new Stack<>()
Data type 예 : Integer, String 등등
stack은 FILO(First In Last Out)이다 처음 들어온 값은 나중에 나간다.
(제일 마지막에 들어온 값이 제일 먼저 나간다.)
stack.peek() : 제일 마지막에 들어간 값을 참조
stack.pop() : 제일 마지막에 들어간 값을 반환 및 stack에서 제거
Author And Source
이 문제에 관하여(Lv.1-[크레인 인형뽑기]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@just_coding/Lv.1-크레인-인형뽑기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)