할머니의 콤퓨타 도전기
Programmers: 크레인 인형뽑기 게임 본문
programmers.co.kr/learn/courses/30/lessons/64061
- solution 1
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int solution(vector<vector<int>> board, vector<int> moves) {
int answer = 0;
vector<int> bucket;
vector<int> game[101];
for(int i=0; i<board.size(); i++){
for(int j=board.size()-1; j>=0; j--){
if(board[j][i]!=0)
game[i].push_back(board[j][i]);
}
}
for (int i=0; i < moves.size(); i++){
int pos = moves[i]-1;
if(!game[pos].empty()){
int doll = game[pos].back();
game[pos].pop_back();
if(!bucket.empty() && bucket.back() == doll){
bucket.pop_back();
answer+=2;
}
else
bucket.push_back(doll);
}
}
return answer;
}
맨 처음 푼 건 board로 들어온 입력을 다시 내가 생각하기 편하도록 각 인형뽑기 줄마다 다시 game vector에 담아주었다.
- solution 2
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int solution(vector<vector<int>> board, vector<int> moves) {
int answer = 0;
vector<int> bucket;
for (int i=0; i < moves.size(); i++){
int pos = moves[i]-1;
for(int j=0; j< board.size(); j++){
if(board[j][pos]!=0){
int doll = board[j][pos];
board[j][pos] = 0;
if(!bucket.empty() && bucket.back() == doll){
bucket.pop_back();
answer+=2;
}
else
bucket.push_back(doll);
break;
}
}
}
return answer;
}
하지만 굳이 입력 부분을 건드리지 않고도 바로 해결할 수 있었다.
'Algorithm > Problem Solving' 카테고리의 다른 글
Programmers: 신규 아이디 추천 (0) | 2021.04.29 |
---|---|
Programmers: 추석 트래픽 (0) | 2021.04.28 |
Programmers: 모의고사 (0) | 2020.08.18 |
BOJ 11657 타임머신 (0) | 2020.08.17 |
[C++] Programmers: N으로 표현 (0) | 2020.08.16 |
Comments