프로그래밍응용/오답노트
프로그래머스, 2019카카오겨울인턴십, 크레인 인형 뽑기 게임(C++)
photoner
2021. 2. 22. 23:30
728x90
반응형
모든 출저는 위임.
문제는 위와 같다.
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
|
#include <string>
#include <vector>
#include <stack>
using namespace std;
int solution(vector<vector<int>> board, vector<int> moves) {
int answer = 0;
stack<int> stbasket; // 뽑은 인형을 담는 스택!
for(auto c : moves) // 뽑을 라인!
for(int r=0; r<board.size(); r++)
if(board[r][c-1] != 0) // 비어져있지 않은 [r][c] 칸이 나오면
{
if(!stbasket.empty() && stbasket.top() == board[r][c-1])
{ // 1. 스택에 인형이 있고 2. 스택 제일 위에 인형이 지금 넣으려고하는 인형과 같다면
stbasket.pop(); // 넣어봤자 터지므로 그냥 빼고
answer+=2; // 터진 인형 두 개 증가.
}
else // 스택이 비었거나, 넣으려는 인형과 스택 제일 위의 인형이 같지 않다면
stbasket.push(board[r][c-1]); // 인형을 넣어준다.
board[r][c-1] = 0; // 그리고 board에서 뽑은 인형 자리는 비워준다.
break; // c를 갱신한다.
}
return answer;
}
|
cs |
728x90
반응형