Algorithm ๐ง๐ป๐ป/ํ๋ก๊ทธ๋๋จธ์ค(Programmers)
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์(Level 1)
dkswnkk
2022. 4. 10. 18:49
๋ฌธ์
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์
[[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
์ฝ๋
#include <string>
#include <vector>
#include <stack>
using namespace std;
int solution(vector<vector<int>> board, vector<int> moves) {
int answer = 0;
stack<int> basket;
for(int move:moves){
int pick_num = 0;
for(int i=0; i<board.size(); i++){
if(board[i][move-1]!=0){
pick_num = board[i][move-1];
board[i][move-1]=0;
break;
}
}
if(pick_num>0&&!basket.empty()){
if(basket.top()==pick_num){
basket.pop();
answer+=2;
}
else basket.push(pick_num);
}
else if(basket.empty()){
basket.push(pick_num);
}
}
return answer;
}
ํ์ด(19๋ถ)
ํฌ๊ฒ ๋ณต์กํ์ง๋ ์์์ต๋๋ค. move์์น์ depth๋ฅผ ๋ด๋ ค๊ฐ๋ฉด์ ์ธํ์ด ์์ ๋ ๋ฝ์ ๋ค์ ์ด์ stack์ top์ ์์ ๊ฒฝ์ฐ ํฐํธ๋ฆฌ๋ ์์ผ๋ก ๊ตฌํํ์ต๋๋ค.