YeJin's Footsteps

크레인 인형 뽑기 게임 본문

Computer Science & Engineering/알고리즘

크레인 인형 뽑기 게임

YeJinii 2021. 5. 2. 17:32

 

 

문제 링크

https://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

 

문제 코드

#include <string>
#include <vector>
#include <iostream>

using namespace std;

int solution(vector<vector<int>> board, vector<int> moves) {

    vector<int> basket;

    int answer = 0;

    for(int i=0; i<moves.size(); i++){
        for(int j=0; j<board.size(); j++){
            if(board[j][moves[i]-1]) {
                basket.push_back(board[j][moves[i]-1]);
                board[j][moves[i]-1]=0;
                if(basket.size()>1){
                    if(basket[basket.size()-1]==basket[basket.size()-2]){
                        basket.pop_back();
                        basket.pop_back();
                        answer+=2;
                    }
                }
                break;
            }
        }
    }

    return answer;
}

 

 

시행 착오

 

- 입력으로 주어지는 숫자는 1~5 -> 배열 접근은 0~4이기 때문에 moves[i]-1

- 반복문이 열우선으로 탐색

- 열우선 탐색시 탐색 완료하면 반복문을 break해야함

- pop연산 개수를 세는 줄 알았으나 없어진 인형의 개수를 세는 것이였음 (answer+=pop연산 수 * 2)

'Computer Science & Engineering > 알고리즘' 카테고리의 다른 글

신규 아이디 추천  (0) 2021.05.02
튜플  (0) 2021.05.02
완주하지 못한 선수  (0) 2021.05.02
next_permutation(start, end)  (0) 2021.04.18
SelectionSort(선택 정렬)  (0) 2021.04.16
Comments