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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

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
31
32
33
34
#include 
#include 
 
using namespace std;
 
int solution(vector<vector> board, vector moves) {
    vector picks; //뽑혀서 들어간 인형들이 쌓이는 벡터 
    int answer = 0;
 
    for (int i = 0; i < moves.size(); i++)
    { 
        // 인형을 뽑아서 picks 에 넣는다.
       for (int j = 0; j < board.size(); j++)
       {
           if (board[j][moves[i]-1== 0)continue// 인형이 없는 경우(0일 경우) 다음 인덱스로 넘어간다.
           picks.push_back(board[j][moves[i]-1]); // 인형이 있을 경우 (0이 아닐 경우) 해당 인형(값)을 picks에 넣는다.
           board[j][moves[i]-1= 0// 인형이 뽑혔으므로 빈칸으로(0으로) 바꿔준다.
           break;
       }
 
       // 인형을 넣을 때 마다 똑같은 인형이 쌓였는지 검사한다.
       for (int k = 0; k + 1 < picks.size(); k++)
       {
           if (picks[k] == picks[k + 1]) // 똑같은 인형이 쌓여있을 경우
           {
               picks.pop_back(); // 맨 뒷칸 부터 똑같은 인형 두개를 지운다.
               picks.pop_back();
               answer += 2//두개를 지웠으므로 answer += 2
               break;
           }
       }
    }
    return answer;
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

+ Recent posts