*max_element(priorities.begin(),priorities.end())
//--- 내 풀이
#include <algorithm>
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int solution(vector<int> priorities, int location) {
int i, answer = 0;
int size = priorities.size();
while(size != 0){
//제일 큰 수인지 검사
int Emax = *max_element(priorities.begin(),priorities.end());
int first = priorities[0];
//제일 큰 수라면 pop, answer++
if(first == Emax){
priorities.erase(priorities.begin());
++answer;
if(location==0) break;
else location-- ;
}
//아니면 뒤로 넣기
else{
priorities.erase(priorities.begin());
priorities.push_back(first);
if(location==0) {
location = size-1;
}
else location--;
}
size = priorities.size(); // <--- 마지막에 다시 사이즈 설정!
}
//location인덱스일때의 answer 출력
return answer;
}
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int solution(vector<int> priorities, int location) {
int answer = 0;
int size = priorities.size();
while(size != 0){
bool isCheck = false;
int first = priorities[0];
for(int i = 1; i < priorities.size(); i++){
int tmp = priorities[i];
if(first < tmp) {
isCheck = true;
break;
}
}
if(isCheck){ //첫 번째 원소보다 큰 수가 존재하는 경우
priorities.erase(priorities.begin());
priorities.push_back(first);
if(location == 0) location = priorities.size() - 1;
else location--;
}
else { //첫 번째 원소가 가장 큰 경우
priorities.erase(priorities.begin());
++answer;
if(location == 0) break;
else location--;
}
size = priorities.size();
}
return answer;
}
'CPP 문제풀이 > 프로그래머스' 카테고리의 다른 글
(좋지 않은 풀이)모의 고사 (완전 탐색) (0) | 2020.09.11 |
---|---|
기능개발 (0) | 2020.08.02 |
탑 (0) | 2020.08.02 |
크레인 인형 뽑기 (0) | 2020.07.26 |
완주하지 못한 선수 (해시) (0) | 2020.07.26 |