Programmers_카카오2019겨울 인턴십 - 크레인 인형 뽑기
프로그래머스 - 크레인 인형 뽑기 문제 입니다.
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/64061
2. 분류 및 난이도
Programmers 문제입니다.
2019년도 kakao 겨울 인턴십 문제이고, 난이도는 가장 쉬운 난이도입니다.
3. 생각한 것들(문제 접근 방법)
- 인형뽑기를 하여 바구니에 넣는데 바구니 맨 위의 값과 같으면 인형을 집은 인형과 바구니의 인형을 뺍니다.
- 뺀 인형의 개수를 구합니다.
- stack을 이용하라고 문제에서 대놓고 알려줘서 어렵지 않습니다.
4. 접근 방법을 적용한 코드
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
#include <string>
#include <vector>
#include <stack>
#include <iostream>
using namespace std;
int solution(vector<vector<int>> board, vector<int> moves) {
int answer = 0;
stack<int> st;
int row = board.size();
for(int i = 0;i<moves.size();++i){
int index = moves[i]-1;
int count = 0;
while(count < row && board[count][index]==0){
++count;
}
if(count==row) continue;
int find = board[count][index];
board[count][index]=0;
if(st.empty()) st.push(find);
else{
if(st.top() == find) answer+=2,st.pop();
else
st.push(find);
}
}
return answer;
}
5. 결과
필요시.
This post is licensed under CC BY 4.0 by the author.