https://programmers.co.kr/learn/courses/30/lessons/64061
#include <string>
#include <vector>
#include <stack>
using namespace std;
int solution(vector<vector<int>> board, vector<int> moves) {
int answer = 0;
int col = board[0].size();
vector<stack<int>> bd(board.size());
stack<int> bucket;
for (int i = board.size() - 1; i >= 0; i--) {
for (int j = 0; j < col; j++) {
if (board[i][j] != 0) bd[j].push(board[i][j]);
}
}
for (int m : moves) {
m--;
if (!bd[m].empty()) {
if (!bucket.empty() && bd[m].top() == bucket.top()) {
bucket.pop();
bd[m].pop();
answer += 2;
}
else {
bucket.push(bd[m].top());
bd[m].pop();
}
}
}
return answer;
}
'Algorithm > 프로그래머스' 카테고리의 다른 글
[2020카카오공채] 외벽 점검 (0) | 2020.04.03 |
---|---|
[2019 카카오 개발자 겨울 인턴십] 튜플 (0) | 2020.04.02 |
[2019 카카오 개발자 겨울 인턴십] 징검다리 건너기 (0) | 2020.04.02 |
[2019 카카오 개발자 겨울 인턴십] 호텔 방 배정 (0) | 2020.04.02 |
[2019 카카오 개발자 겨울 인턴십] 불량 사용자 (0) | 2020.04.02 |