https://programmers.co.kr/learn/courses/30/lessons/42587
필요개념
- 덱에 대한 개념
- for(auto) 를 이용하여 덱 탐색
- pair 사용 법
- flag를 다뤄서 맞는 조건에 찾기
/*
--스택을 탐색 방법?
--
*/
#include<iostream>
#include <vector>
#include<deque>
using namespace std;
int solution(vector<int> priorities, int location) {
int answer = 0;
deque<pair<int,int>> q;//인덱스, 우선순위
vector<pair<int, int>> res;
for (int i = 0; i<priorities.size(); i++) {
q.push_back({ i,priorities[i] });
}
while (!q.empty()) {
pair<int,int> tmp = q.front();
q.pop_front();
bool print = true;
for (auto p : q) {
if (tmp.second < p.second) {
print = false;
}
}
if (print) {
res.push_back(tmp);
}
else {
q.push_back(tmp);
}
}
for (int i = 0; i < res.size(); i++) {
if (res[i].first == location) {
answer = i+1;
break;
}
}
return answer;
}
int main() {
vector<int> priorities = { 1, 1, 9, 1, 1, 1 };
int location = 0;
cout<<solution(priorities, location);
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
2021 카카오공채 - 신규 아이디 추천 (0) | 2021.02.28 |
---|---|
프로그래머스 level2 - 소수 찾기 (0) | 2020.04.06 |
2017 카카오코드 본선 - 단체사진 찍기 (0) | 2020.04.04 |
2019카카오 인턴쉽 - 불량 사용자 (0) | 2020.04.03 |
2020 카카오 기출 괄호 변환 (0) | 2020.03.13 |