https://programmers.co.kr/learn/courses/30/lessons/42587
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ๊ณ ๋์ Kit ํ๋ฆฐํฐ ๋ฌธ์ ํ์ด์ด๋ค.
๊ฐ๋จํ๊ฒ ๋ฆฌ์คํธ๋ง ์ด์ฉํ์ฌ location์ ์ธ๋ฑ์ค๋ฅผ ๋ฐ๊พธ์ด์ค ์๊ฐ์ผ๋ก ํ์ด๋ดค๋๋ฐ ์ด๋ฏธ ์ธ์๋๋ ๊ฐ๊น์ง ์ ์ฅํ๊ณ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์ด ์ด๋ ค์ ๊ณ ์ค์๋ ๋ฐฐ์ด๋งํผ ๋ฐ๋ณตํ๋ฉด ์ ๋๋ ๊ฒ์ ๊นจ๋ซ๊ณ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์๊ฐํด๋ดค๋ค.
์์ผ๋ก ์ง์ ๊ฐ ๋ณ๊ฒฝ ๋จ๊ณ๋ฅผ ์ ์ด๋ณด๋ค๊ฐ ์ด๊ธฐ ๋ฐฐ์ด ์์์ ์ต์ข ๋ฐฐ์ด ์์๋ฅผ ๋น๊ตํด์ ํ ์ ์๊ฒ ๋ค๋ ์๊ฐ๊น์ง๋ ํ๋๋ฐ ์ต์ข ๋ฐฐ์ด ์์๊ฐ ๊ฐ๋จํ ์ ๋ ฌ์ด ์๋ ๊ฐ์ด ๊ฐ์ ๊ฒฝ์ฐ ์ฒ๋ฆฌ๋ ํ์ํด์ ๋ค๋ฅธ ๋ถ๋ค์ ํ์ด๋ฅผ ์ผ๋ถ ์ฐธ์กฐํ๋ค.
์ฐ์ ์์ ํ๋ฅผ ์จ๋ณด์ง ์์์ ๋ชฐ๋๋๋ฐ ์ฐ์ ์์ ํ๋ฅผ ์ด์ฉํ๋ฉด ์์ฃผ ๊ฐ๋จํ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์๋ค.
์ฐ์ ์์ ํ๋ฅผ ์ด์ฉํ์ฌ ์ต์ข ๋ฐฐ์ด ์์๋ฅผ ๊ตฌํ๊ณ ์ฒซ ๋ฒ์งธ ์์์ ๊ธฐ์กด ๋ฐฐ์ด ์์๋ฅผ ๋น๊ตํ์ฌ ๋จผ์ ์ธ์๋๋ ๋ฌธ์ ๊ฐ์๋ฅผ ๋ํด์ฃผ๋ ๋ฐฉ์์ผ๋ก ์ ๊ทผํ๋ฉด ๋๋ค.
import java.util.*;
class Solution {
public int solution(int[] priorities, int location) {
// ํฐ ์ซ์๊ฐ ์ฐ์ ์์๊ฐ ๋๋๋ก ์ฐ์ ์์ ํ ์์ฑ
PriorityQueue<Integer> queue = new PriorityQueue<>(Collections.reverseOrder());
// ์ฐ์ ์์ ํ์ ์ค์๋๊ฐ ๋ด๊ธด ๋ฐฐ์ด ์์๋ก ๋ฃ์ผ๋ฉด ์๋์ผ๋ก ์ ๋ ฌ์ด ๋จ
// ex) [2, 1, 3, 2] -> [3, 2, 2, 1]
for (int data : priorities) {
queue.add(data);
}
int answer = 1;
while (!queue.isEmpty()) {
// ์ฐ์ ์์ ํ์ ์ฒซ ๋ฒ์งธ ์์๋ ๊ธฐ์กด ์ค์๋ ๋ชฉ๋ก ๋ฐฐ์ด๊ณผ ๋น๊ต
for (int i = 0; i < priorities.length; i++) {
if (priorities[i] == queue.peek()) {
// ๊ตฌํด์ผ ํ๋ ๊ฐ์ด๋ฉด ๋ํด์ง ์์ ๋ฆฌํด
if (i == location) {
return answer;
}
// ๊ตฌํด์ผ ํ๋ ๊ฐ์ด ์๋๋ผ๋ฉด
answer++; // ๋จผ์ ์ธ์๋๋ ๋ฌธ์ ๋ํ๊ธฐ
queue.poll(); // ํ์์ ๋นผ๊ธฐ
}
}
}
return answer;
}
}
'๊ฐ๋ฐ > ์๋ฃ๊ตฌ์กฐ & ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฃผ์ ๊ฐ๊ฒฉ (Java) (0) | 2022.02.06 |
---|---|
๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ (Java) (0) | 2022.01.24 |
๊ธฐ๋ฅ๊ฐ๋ฐ (Java) (0) | 2021.11.12 |
๋ฒ ์คํธ์จ๋ฒ (Java) (0) | 2021.11.03 |
์์ฅ (Java) (0) | 2021.11.01 |
๋๊ธ