할머니의 콤퓨타 도전기

Programmers: 크레인 인형뽑기 게임 본문

Algorithm/Problem Solving

Programmers: 크레인 인형뽑기 게임

ji.o.n.e 2021. 4. 27. 15:46

programmers.co.kr/learn/courses/30/lessons/64061

 

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

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

 

  • solution 1
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;

int solution(vector<vector<int>> board, vector<int> moves) {
    int answer = 0;
    vector<int> bucket;
    vector<int> game[101];
    
    for(int i=0; i<board.size(); i++){
        for(int j=board.size()-1; j>=0; j--){
            if(board[j][i]!=0)
                game[i].push_back(board[j][i]);
        }
    }    
    
    for (int i=0; i < moves.size(); i++){
        int pos = moves[i]-1;
        if(!game[pos].empty()){
            int doll = game[pos].back();
            game[pos].pop_back();
            if(!bucket.empty() && bucket.back() == doll){
                bucket.pop_back();
                answer+=2;
            }
            else
                bucket.push_back(doll);
        }
    }
    return answer;
}

맨 처음 푼 건 board로 들어온 입력을 다시 내가 생각하기 편하도록 각 인형뽑기 줄마다 다시 game vector에 담아주었다.

 

  • solution 2
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;

int solution(vector<vector<int>> board, vector<int> moves) {
    int answer = 0;
    vector<int> bucket;
    for (int i=0; i < moves.size(); i++){
        int pos = moves[i]-1;
        for(int j=0; j< board.size(); j++){
            if(board[j][pos]!=0){
                int doll = board[j][pos];
                board[j][pos] = 0;
                
                if(!bucket.empty() && bucket.back() == doll){
                    bucket.pop_back();
                    answer+=2;
                }
                else
                    bucket.push_back(doll);
            	break;
            }
        }
        
    }
    return answer;
}

하지만 굳이 입력 부분을 건드리지 않고도 바로 해결할 수 있었다.

'Algorithm > Problem Solving' 카테고리의 다른 글

Programmers: 신규 아이디 추천  (0) 2021.04.29
Programmers: 추석 트래픽  (0) 2021.04.28
Programmers: 모의고사  (0) 2020.08.18
BOJ 11657 타임머신  (0) 2020.08.17
[C++] Programmers: N으로 표현  (0) 2020.08.16
Comments