-
Notifications
You must be signed in to change notification settings - Fork 4
/
Lv1_크레인인형뽑기게임.cpp
47 lines (38 loc) · 1.03 KB
/
Lv1_크레인인형뽑기게임.cpp
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
39
40
41
42
43
44
45
46
47
#include <string>
#include <vector>
#include <iostream>
#include <stack>
using namespace std;
stack<int> arr[30];
int solution(vector<vector<int>> board, vector<int> moves) {
int answer = 0;
for (int i = board.size() - 1; i >= 0; --i) {
for (int j = 0; j < board[0].size(); ++j) {
if(board[i][j] != 0)
arr[j].push(board[i][j]);
}
}
stack<int> ans;
for (auto a : moves) {
int top = 0;
if (ans.size() > 0)
top = ans.top();
if (arr[a-1].size() > 0) {
int doll = arr[a-1].top();
arr[a-1].pop();
if (top == doll) {
answer += 2;
ans.pop();
}
else
ans.push(doll);
}
}
return answer;
}
int main() {
vector<vector<int>> board = { {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} };
vector<int> moves = {1, 5, 3, 5, 1, 2, 1, 4};
cout << solution(board, moves);
return 0;
}