아래내용처럼 코드를 짰는데 계속 signal: segmentation fault (core dumped) 에러가 발생하네요...
딱히 배열쓴것도 아닌데 에러날 이유를 못찾겠네요..
조언 부탁드립니다!
using namespace std;
int solution(vector> board, vector moves) {
int answer = 0;
stack s;
for(int i=0; i<moves.size(); i++){
int cols = moves[i] - 1;
for(int j=0; j<board.size(); j++){
if(board[j][cols] != 0){
//인형 존재 -> 해당인형을 뽑는다
//스택이 비어있지 않고, 스택의 탑이랑 새로들어갈 인형이랑 같으면
if(board[j][cols] == s.top() && !s.empty()){
//새로운인형은 안넣고, top은 빼버린다
s.pop();
answer += 2;
}else{
s.push(board[j][cols]);
}
board[j][cols] = 0;
break;
}
}
}
return answer;
}
if(board[j][cols] == s.top() && !s.empty())
'&&' 연산자를 쓰시면 앞 조건과 뒷조건을 순서대로 체크 합니다. 이렇게 조건을 주시면 s.top()을 s.empty()보다 먼저 체크 하기 때문에 문제가 됩니다.
if( !s.empty() && board[j][cols] == s.top())
이렇게 바꾸시면 됩니다.
감사합니다!!