|
์ฝ๋ ์์ฑํ๊ธฐ
import java.util.Collections;
import java.util.PriorityQueue;
public class Printer {
public int solution(int[] priorities, int location) {
int answer = 1;
PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
for (int i : priorities) {
pq.add(i);
}
while (!pq.isEmpty()) {
for (int i = 0; i < priorities.length; i++) {
if (pq.peek() == priorities[i]) {
if (location == i) {
return answer;
}
pq.poll();
answer++;
}
}
}
return answer;
}
}
Java
๋ณต์ฌ
|
์ฝ๋ ์ค๋ช
ํ๊ธฐ
1.
์ฐ์ ์์ ํ๋ฅผ ํ์ฉํด์ priorities์ ์๋ ์๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํด์ ํ์ ๋ด์ต๋๋ค.
2.
for ๋ฐ๋ณต๋ฌธ์ ํตํด์ priorities์ ์๋ ์์ que์ ์๋ ์๊ฐ ์ผ์นํ๋ฉด que์ ์๋ ์๋ฅผ ์ญ์ ํ์ต๋๋ค.
3.
๋ํ priorities์ for๋ฌธ์ ๊ณ์ํด์ 0์ผ๋ก ์ด๊ธฐํ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ while๋ฌธ์ ๋ด์์ต๋๋ค.
4.
์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ์ priorities์ ์๋ location๊ณผ ์ผ์นํ๋ ์์ ์ฐ์ ์์ ์
๋๋ค. priorities์ ์๋ i์ location์ด ์ผ์นํ๋ฉด answer๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ํ๋ ํ๋ฆฐํธ๋ฌผ์ด ๋ช ๋ฒ์งธ๋ก ์ถ๋ ฅ๋๋์ง ๊ถ๊ธํ๊ฑด๋ฐ, answer๋ฅผ 0๋ถํฐ ์์ํด์ ์๋ฌ๊ฐ ์๊ฒผ์ต๋๋ค. location๊ณผ i๊ฐ ์ผ์นํด์ผ๋ง answer๋ฅผ ์ถ๋ ฅํด์ผํ๋ค๋ ๋ก์ง์ ์๊ฐํ์ง ๋ชปํด์ ๊ฝค ์ค๋์๊ฐ์ ํ๋นํ์ต๋๋ค. ํ ๊ทธ๋ฆผ์ ๊ทธ๋ ค๊ฐ๋ฉด์ ๋ก์ง์ ๋ด์๋๋ ๋ง์ด ๋์์ด ๋๋ ๊ฑฐ ๊ฐ์ต๋๋ค. ์ค๋ ํ์ดํ ๋ฌธ์ ๋ ๋จธ๋ฆฌ๊ฐ ๋๋ฌด ์ํ์ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌ๋ฅผ ํด์ผ๋ ๊ฑฐ ๊ฐ์ต๋๋ค^.^