본문 바로가기

난 이 분야 전문가야!/Algorithm

프로그래머스 :: 크레인 인형뽑기 - c++ 풀이공유

https://programmers.co.kr/learn/courses/30/lessons/64061?language=python3

 

코딩테스트 연습 - 크레인 인형뽑기 게임

[[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

 

<풀이>

 

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
27
28
29
30
#include <string>
#include <vector>
 
using namespace std;
 
int solution(vector<vector<int>> board, vector<int> moves) {
    int answer = 0;
    int i, j;
    vector<int> stack;
    
    for(i = 0;i<moves.size();i++){
        for(j = 0;j<board.size();j++){
            if(board[j][moves[i] - 1!= 0){
                stack.push_back(board[j][moves[i]-1]);
                board[j][moves[i]-1= 0;
                
                if(stack.size() > 1){
                    if(stack[stack.size() - 1== stack[stack.size() - 2]){
                        stack.pop_back();
                        stack.pop_back();
                        answer++;
                    }
                }
                
                break;
            }
        }
    }
    return answer*2;
}
cs

 

문제에서 vector로 주어져서 모심코 vector를 이용하여 stack 배열을 생성하였지만

stack<int>를 사용하면 보다 효율적이고 직관적인 코드를 짤수 있었을거라는 생각이 든다.

728x90