반응형
포인트
1. 크레인 인형 뽑기: 적절한 인덱스와 스택을 잘 이해한다면 확실히 풀만한 문제였던 것 같다. 하지만 나는 문제를 이해하지 못했던게 몇 번인지 어휴;;;;
🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다.
c++/cpp
#include <bits/stdc++.h>
using namespace std;
int solution(vector<vector<int>> board, vector<int> moves) {
int answer = 0;
vector<int> stack;
int n = board.size();
for(auto move: moves){
int idx = move-1;
for(int i=0; i<n; i++){
if(board[i][idx]!=0){
stack.push_back(board[i][idx]);
board[i][idx] = 0;
break;
}
}
if(stack.empty() || stack.size()==1) continue;
else if (stack[stack.size()-1] == stack[stack.size()-2]){
stack.erase(stack.end()-1);
stack.erase(stack.end()-1);
answer+=2;
}
}
return answer;
}
python
def solution(board, moves):
answer = 0
n = len(board)
stack =[]
for move in moves:
idx = move - 1
for i in range(n):
if board[i][idx] != 0:
stack.append(board[i][idx])
board[i][idx] = 0
break
if len(stack) == 0 or len(stack) ==1:
continue
elif stack[-2] == stack[-1]:
stack.pop(-1)
stack.pop(-1)
answer+=2
else:
continue
return answer
반응형
댓글