관리 메뉴

너와 나의 스토리

[Programmers] 2019 카카오 개발자 겨울 인턴십 - 크레인 인형뽑기 게임 본문

Algorithm/구현

[Programmers] 2019 카카오 개발자 겨울 인턴십 - 크레인 인형뽑기 게임

노는게제일좋아! 2020. 5. 4. 15:58
반응형

문제: https://programmers.co.kr/learn/courses/30/lessons/64061

 

문제 풀이:

stack을 이용하여 쌓아 올리면 됨.

 

소스 코드:

#include <string>
#include <vector>
#include <stack>
using namespace std;

int cur[32];
stack<int> st;
int solution(vector<vector<int>> board, vector<int> moves) {
	int answer = 0;
	int row = board.size();
	int col = board[0].size();

	//init
	for (int i = 0; i < col; i++) {
		for (int j = 0; j <row; j++) {
			if (board[j][i] != 0) {
				cur[i] = j;
				break;
			}
		}
	}
	for (int i = 0; i < moves.size(); i++) {
		int curP = moves[i]-1;
		if (cur[curP] >=row) continue;
		if (st.empty()) {
			st.push(board[cur[curP]][curP]);
		}
		else {
			if (st.top() == board[cur[curP]][curP]) {
				answer += 2;
				st.pop();
			}
			else st.push(board[cur[curP]][curP]);
		}
		cur[curP]++;
	}

	return answer;
}
반응형

'Algorithm > 구현' 카테고리의 다른 글

[BOJ] 18809 Gaaaaaaaaaarden  (0) 2020.05.19
[BOJ] 18808 스티커 붙이기  (0) 2020.05.19
1770. [SW Test 샘플문제] 블록 부품 맞추기  (4) 2019.11.07
[BOJ] 13567 로봇  (0) 2019.10.04
(BOJ) 2933 미네랄  (0) 2019.07.28
Comments