https://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을이용하면 간단

인형을 뽑을 때마다 해당 인형의 값을 stack에 push

push하기 전에 조건문으로 stack.top()의 값이 지금 뽑은 인형과 같다면 pop()으로 터트리고 answer 2 증가(인형 두개가 터지니까)

뽑은 인형의 자리는 빈 자리 (0)으로 만듬

 

int solution(vector<vector<int>> board, vector<int> moves) {
	int answer = 0;
	stack<int> stack;
	for (int i = 0; i < moves.size(); i++) {
		for (int j = 0;j < board.size();j++) {
			if (board[j][moves[i]-1] != 0) {
				if (!stack.empty() && board[j][moves[i] - 1] == stack.top()) {
					stack.pop();
					answer+=2;
				}
				else 
					stack.push(board[j][moves[i] - 1]);
				board[j][moves[i] - 1] = 0;
				break;
			}
		}
	}
	return answer;
}

+ Recent posts