Search
๐Ÿป

๊น€๊ธฐํ—Œ

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
300
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
#include<string> #include<vector> #include<queue> #include<utility> #include<algorithm> using namespace std; typedef pair<int, bool>p; //p = int, boolํ˜•์˜ ์ž๋ฃŒํ˜•์œผ๋กœ ์žฌ์ •์˜ int solution(vector<int> priorities, int location) { deque<p>q; //int, bool ํ˜•์„ ๋‹ด๊ณ  ์žˆ๋Š” Deque int answer = 1; for (int i = 0; i < priorities.size(); i++) q.push_back({ priorities[i],false }); //deque์— ์ฃผ์–ด์ง„ ๋ฌธ์„œ์˜ ์ค‘์š”๋„ ๊ฐ’ ์ถ”๊ฐ€ q[location].second = true; // ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์—๋งŒ second๋ฅผ true๊ฐ’์œผ๋กœ sort(priorities.begin(), priorities.end()); // ๋ฌธ์„œ์˜ ์ค‘์š”๋„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ while (1) { if (q.front().first == priorities.back()) { //q.front๊ฐ’์ด ์ค‘์š”๋„๊ฐ€ ๊ฐ€์žฅ ๋†’์€๊ฐ’์ด๋ฉด์„œ if (q.front().second)return answer; // second๊ฐ’์ด true๋ผ๋ฉด(=๋‚ด๊ฐ€ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๋ฌธ์„œ๋ผ๋ฉด) answer return q.pop_front();//์ฐพ๊ณ ์ž ํ•˜๋Š” ๋ฌธ์„œ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด q์™€ ๋ฆฌ์ŠคํŠธ์—์„œ ์ œ๊ฑฐ ํ›„ answer +1 priorities.pop_back(); answer++; continue; } p tmp = q.front(); //q.front๊ฐ’์ด ์ค‘์š”๋„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๊ฐ’์ด ์•„๋‹ˆ๋ผ๋ฉด pop ํ›„ ๋งจ ๋’ค์— ๋‹ค์‹œ push q.pop_front(); q.push_back(tmp); } }
C++
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
Queue๋ฅผ ์ด์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค
1.
์ฃผ์–ด์ง„ ์ค‘์š”๋„ ๊ฐ’๊ณผ ์›ํ•˜๋Š” ๋ฌธ์„œ๋Š” ๋”ฐ๋กœ ๊ธฐ๋กํ•˜๋ฉด์„œ Queue์— ๋„ฃ๋Š”๋‹ค
2.
๋ฌธ์„œ์˜ ์ค‘์š”๋„ ์ •๋ ฌ
3.
๋‚ด๊ฐ€ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’(True๋กœ ๊ธฐ๋กํ•ด๋‘” ๊ฐ’)์ด ๋‚˜์˜ฌ ๋•Œ ๊นŒ์ง€ ํšŒ์ „์‹œํ‚จ๋‹ค
a.
๋‹จ, Queue์—์„œ ์ค‘์š”๋„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๊ฐ’์ด ๋‚˜์˜ค๋ฉด popํ•˜๋ฉฐ answer+1
b.
๊ฐ€์žฅ ๋†’์€ ๊ฐ’์ด ์•„๋‹ˆ๋ผ๋ฉด pop ํ›„, ๋’ค์— ๋‹ค์‹œ push