๐ฑ์นด์นด์ค - ๋ฌด์ง์ ๋จน๋ฐฉ ๋ผ์ด๋ธ
๋ฌธ์
ํ์ด
ํ,,,, ๋ฌธ์ ๋ฅผ ํธ๋๋ฐ ๋ต์ ๋ณด๊ณ ํ๋ฉด ์๋๋๋ฐใ
ใ
์์ง๋ ์ค๋ ฅ์ด ์๋๊ธด ํ๋๋ณด๋ค.
์ด๋ฒ ๋ฌธ์ ๋ฅผ ํตํด ์๊ฒ๋ ๊ฒ์ ์ฐ์ ์์ ํ(priority_queue)
์ด๋ค.
์ผ๋ฐ์ ์ธ ํ๋ FIFO์ ๊ธฐ๋ฅ์ ๊ฐ์ง๋๋ฐ, ์ฐ์ ์์ ํ๋ ํ๋ก๊ทธ๋๋จธ์ ํ๋จ์ ๋ฐ๋ผ ์ฐ์ ์์๋ฅผ ๋๋ ๊ฒ์ด๋ค.
์ด ๋ฌธ์ ๋ฅผ ํ ๋ ํ์ pair๊ตฌ์กฐ๋ฅผ ์ฐ๋๋ฐ(๊ฐ ์์์ ๋จน๋ ์๊ฐ๊ณผ ์ธ๋ฑ์ค), default ์ฐ์ ์์๋ max heap์ด๋ผ ํฐ ๊ฐ๋ถํฐ ์ ๋ ฌ์ ํด์ค๋ค(pair์ first๋ฅผ ๊ธฐ์ค).
๋น๊ต ์ฐ์ฐ์๋ ๋๊ฐ์ง๋ง ์๋ฉด ๋๋ค. less์ greater์ด ์๋๋ฐ less๋ ๋ด๋ฆผ์ฐจ์, greater์ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ด๋ค. ์ด๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด functional
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ include ํด์ฃผ์ด์ผ ํ๋ค.
์ด ๋ฌธ์ ์์๋ ์์๋จน๋ ์๊ฐ์ด ์งง์ ์์๋๋ก ์ ๋ ฌ์ ํด์ผ ํ๋ฏ๋ก ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ์ ํด์ฃผ์๋ค. ๊ตฌ๊ธ๋ง์ ํ๋๋ฐ ์ ๋ฐํ ๋ฐฉ๋ฒ๋ ์์๋๋ฐ, default ์ฐ์ฐ์๋ก pushํด์ฃผ๋๋ฐ foot_time์ ์์๋ฅผ ๋ฃ์ด์ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ์ ํด์ฃผ๊ณ ํ์ ๊ณ์ฐํ ๋ ๋ค์ -๋ฅผ ๋ถ์ด๋ ๊ฒ์ด๋ค.
#include <queue>
#include <vector>
#include <string>
#include <algorithm>
#include <iostream>
#include <functional>
using namespace std;
typedef long long ll;
struct compare {
bool operator()(pair<int, int> a, pair<int, int> b) {
return a.first < b.first;
}
};
int solution(vector<int> food_times, long long k) {
ll sum = 0, before = 0;
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pfood_times;
for (int i = 0; i < food_times.size(); i++) {
sum += food_times[i];
pfood_times.push(make_pair(food_times[i], (i + 1)));
}
if (sum <= k)
return -1;
while ((pfood_times.top().first - before) * pfood_times.size() <= k) {
if (pfood_times.size() == 1)
return (pfood_times.top().first);
k -= ((pfood_times.top().first - before) * pfood_times.size());
before = pfood_times.top().first;
pfood_times.pop();
}
vector<pair<int, int>> time;
while (!pfood_times.empty()) {
time.push_back(make_pair(pfood_times.top().second, pfood_times.top().first));
pfood_times.pop();
}
sort(time.begin(), time.end());
return time[k % time.size()].first;
}
int main()
{
vector<int> v = { 3,1,2 };
int n = solution(v, 5);
cout << n;
}
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐ฑ์นด์นด์ค - ๋ฌด์ง์ ๋จน๋ฐฉ ๋ผ์ด๋ธ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@lsmmay322/์นด์นด์ค-๋ฌด์ง์-๋จน๋ฐฉ-๋ผ์ด๋ธ์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค