๋ฌธ์
์ฝ๋
// 01:19(๋ฌธ์ ์ดํด ์์)
// 01:27(๋ฌธ์ ๊ตฌํ ์์) ~ 01:44(ํ์ด ์๋ฃ)
#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
#include <queue>
using namespace std;
int solution(vector<int> priorities, int location) {
int answer = 0;
map<int,int>docs;
queue<int>q;
for(int i=0; i<priorities.size(); i++){
docs[i] = priorities[i]; // ๋ฌธ์๋ง๋ค ์ฐ์ ์์ ๋ถ์ฌ
q.push(i); //๋ฌธ์ ์ด๋ฆ ๋ถ์ฌ
}
sort(priorities.begin(), priorities.end(), greater<>());
while(!priorities.empty()){
if(docs[q.front()]!=priorities.front()){ //ํ์ฌ ๋บด๋จ ๋ฌธ์๋ณด๋ค ์ฐ์ ์์ ๋ฌธ์๊ฐ ์กด์ฌํ๋ค๋ฉด
int doc = q.front();
q.pop();
q.push(doc);
}
else{
answer++;
priorities.erase(priorities.begin());
if(q.front()==location) break;
q.pop();
}
}
return answer;
}
ํ์ด(17๋ถ)
๋จผ์ docs๋ผ๋ map์ ํตํด ๊ฐ ๋ฌธ์์ key๊ฐ์ ์ ์๋ก, value๊ฐ์ ์ฐ์ ์์ ๊ฐ์ผ๋ก ๋ฃ์ด์คฌ์ต๋๋ค. ๊ทธ๋ค์ priorities ๋ฐฐ์ด์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๋ค ํ์ฌ์ ๋ฌธ์๊ฐ priorities ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ๊ฐ๊ณผ ๊ฐ๋ค๋ฉด ์ธ์ ํ์๋ฅผ ์ถ๊ฐํด์ฃผ๊ณ , ์ฐพ๋ ๋ฌธ์๊ฐ ํ์ฌ๋ผ๋ฉด ๋ฐ๋ก ์ถ๋ ฅํด์ฃผ์์ต๋๋ค. ๋ง์ฝ ํ์ฌ ๋ฌธ์๊ฐ priorities ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ๊ฐ๊ณผ ๋ค๋ฅด๋ค๋ฉด ์ฐ์ ์์๊ฐ ๋ ํฐ ๋ฌธ์๊ฐ ์๋ค๋ ๋ง์ด ๋๊ธฐ์ ๋ฌธ์ ์ ์กฐ๊ฑด๋๋ก ๋๊ธฐ์ด์ ์ ค ๋ง์ง๋ง์ผ๋ก ๋ณด๋ด๋ฒ๋ฆฌ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ์ต๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ํ๋ก๊ทธ๋๋จธ์ค(Programmers)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ(Level 1) (0) | 2022.04.08 |
---|---|
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ ฌ ํ ๋๋ฆฌ ํ์ ํ๊ธฐ(Level 2) (0) | 2022.04.08 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - [1์ฐจ] ์บ์(Level 2) (0) | 2022.04.07 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ์ผ๊ฐ ๋ฌํฝ์ด(Level 2) (0) | 2022.03.14 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ํผ๋ก๋(Level 2) (0) | 2022.03.04 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ์์ด ๋๋ง์๊ธฐ(Level 2) (0) | 2022.03.04 |
๋๊ธ