[알고리즘 C++]크레인 인형뽑기

오늘의 문제

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;
    stack<int> st;
    for(int i=0;i<moves.size();i++){
        for(int j=0;j<board.size();j++){
            if(board[j][moves[i]-1] != 0){
                if(st.size()!=0 && st.top() == board[j][moves[i]-1]){
                    st.pop();
                    answer+=2;
                }else
                    st.push(board[j][moves[i]-1]);
                board[j][moves[i]-1] = 0;
                break;
            }
        }
    }
    return answer;
}

모범 답안

#include <string>
#include <vector>
#include <stack>

using namespace std;

int solution(vector<vector<int>> board, vector<int> moves) {
    int answer = 0;
    stack<int> s;
    for(int i=0;i<moves.size();i++)
    {
        int check = moves[i] - 1;
        for(int j=0;j<board.size();j++)
        {
            if(board[j][check] != 0)
            {
                if(!s.empty() && s.top() == board[j][check])
                {
                    s.pop();
                    answer += 2;
                }
                else
                    s.push(board[j][check]);
                board[j][check] = 0;
                break;
            }
        }
    }
    return answer;
}

배울 점

  • 1단계는 역시 1단계인것인가
  • 모범답안과 그냥 다 똑같다 아름다워라

좋은 웹페이지 즐겨찾기