어흥
[프로그래머스] 크레인 인형뽑기 게임(C++) 본문
728x90
반응형
문제 링크: programmers.co.kr/learn/courses/30/lessons/64061
1. 주의할 점
- 크레인으로 뽑는 경우, 뽑은 자리는 0으로 바꾼다
- 바구니의 가장 위에 위치한 인형과 뽑은 인형만 비교한다
2. 구현
- 뽑으려는 위치를 idx로 표시한다(기존의 원소 - 1)
- 위에서부터 뽑으므로 0부터 Num-1까지 탐색하여 인형이 있다면 뽑은 후, 해당 위를 0으로 바꾼다
- 뽑은 인형의 숫자를 바구니의 가장 위와 비교한다. 이때, 바구니가 비어있다면 바로 뽑은 인형을 넣는다
- 만약 뽑은 인형의 숫자와 바구니의 가장 위가 일치하지 않더라도 넣는다
- 만약 둘이 같은 숫자라면, 바구니의 가장 위에 있는 인형을 제거하고 Answer+=2를 수행한다(이때, 현재 뽑기를 통해 뽑았던 인형을 다시 넣지 않는다)
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int solution(vector<vector<int>> board, vector<int> moves) {
int answer = 0;
int num = board.size();
vector<int> v;
for(int i=0;i<moves.size();i++){
int idx = moves[i]-1;
for(int j=0;j<num;j++){
int val = board[j][idx];
if(val){
board[j][idx]=0;
if(!v.empty()){
if(v[v.size()-1]==val){
answer+=2;
v.pop_back();
break;
}
}
v.push_back(val);
break;
}
}
}
return answer;
}
728x90
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 타겟 넘버 (C++) (0) | 2021.03.29 |
---|---|
[프로그래머스] 징검다리 (C++) (0) | 2021.03.29 |
[프로그래머스] 징검다리 건너기 (C++) (0) | 2021.03.17 |
[프로그래머스] 불량 사용자 (C++) (0) | 2021.03.17 |
[프로그래머스] 튜플 (C++) (0) | 2021.03.17 |
Comments