YeJin's Footsteps

크레인 인형 뽑기 게임 본문

Computer Science & Engineering/알고리즘

크레인 인형 뽑기 게임

YeJinii 2021. 7. 17. 15:42

문제 링크

https://yejinii.tistory.com/29

 

크레인 인형 뽑기 게임

문제 링크 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 programm..

yejinii.tistory.com

 

문제 풀이 코드

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

using namespace std;

int solution(vector<vector<int>> board, vector<int> moves) {
    int answer = 0;
    
    vector <int> v;
    
    int N=board.size();
    
    for(int i=0; i<moves.size(); i++){
    
        int idx=moves[i]-1;
        
        for(int j=0; j<N; j++){
        
            if(board[j][idx]!=0){
                v.push_back(board[j][idx]);
                board[j][idx]=0; //뽑았으니까 0 삽입
                
                if(v.size()>=2){//벡터의 크기가 2이상일 때만 아래 인형과 같은지 비교
                
                    if(v[v.size()-1]==v[v.size()-2]){
                        v.pop_back();
                        v.pop_back();
                        answer+=2; //인형 두 개 뽑았으니까 +2
                    } 
                }
                break;
            }    
        }
    }    
    return answer;
}

스터디 덕분에 문제를 두번째 풀어보게 되었다.

 

문제 세부 사항을 아니까 moves요소에 1을 뺀다던가

행 순서로 탐색하는 것에서는 헤메지 않고 기억해서 풀 수 있었다.

 

다만 해당 칸에서 인형을 찾았을 때 break 문을 안 걸어줘서 살짝 헤멨다.  ㅋㅋ

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

멀쩡한 사각형  (0) 2021.07.17
짝지어 제거하기  (0) 2021.07.17
입국심사  (0) 2021.07.09
순위  (0) 2021.07.09
가장 먼 노드  (0) 2021.07.08
Comments