๋ฌธ์
ํ์ด
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.StringTokenizer;
public class Main {
public static int print(LinkedList<Integer> queue, int[] priority) {
int first;
boolean canPrint;
while(true) {
// 00. canPrint๊ฐ ์ค๊ฐ์ false๋ก ๋ฐ๋์ง ์๋๋ค๋ฉด ์ถ๋ ฅ๋ ๊ฒ์ด๋ค.
canPrint = true;
// 01. ๋๊ธฐ์ด์ ์ฒซ ๋ฒ์งธ ์์ ๋ค์ ์ฐ์ ์์๊ฐ ๋์ ๊ฒ์ด ์๋ค๋ฉด, ๋งจ ๋ค๋ก ๋ณด๋ด๊ณ canPrint๋ฅผ false๋ก ๋ณ๊ฒฝํ๋ค.
first = queue.peek();
for(int i = 1, len = queue.size(); i < len; i++) {
if(priority[queue.get(i)] > priority[first]) {
queue.add(queue.poll());
canPrint = false;
break;
}
}
// 02. ๋ค์ ์ฐ์ ์์๊ฐ ๋ ํฐ ๊ฒ์ด ์์ด์ง๋ฉด, ์ด ์กฐ๊ฑด๋ฌธ์ ํต๊ณผํ ๊ฒ์ด๋ค.
if(canPrint)
break;
}
return queue.poll();
}
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int T = Integer.parseInt(br.readLine());
int N, M;
LinkedList<Integer> queue = new LinkedList<>();
int[] priority;
int count;
while(T > 0) {
// 00. N, M์ ์
๋ ฅ ๋ฐ๋๋ค.
st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
// 01. ํ์ฌ ํ ์ํ๋ฅผ ์
๋ ฅ ๋ฐ๋๋ค.
queue.clear();
priority = new int[N];
st = new StringTokenizer(br.readLine());
for(int i = 0; i < N; i++) {
priority[i] = Integer.parseInt(st.nextToken());
queue.add(i);
}
// 02. ์ถ๋ ฅ์ ์งํํ๊ณ , ์ํ๋ ๋ฌธ์ ๋ฒํธ๊ฐ ๋์ค๋ฉด ๋ช ๋ฒ๋ง์ ๋์๋์ง ์ถ๋ ฅํ๋ค.
count = 1;
while(true) {
if(print(queue, priority) == M) {
System.out.println(count);
break;
} else {
count++;
}
}
T--;
}
}
}
๋ฌธ์ ๊ฐ ์ฃผ๋ ๋๋ก ๊ทธ๋๋ก ๊ตฌํํ๋ค. ํ๋ฆฐํฐ 'ํ'๋ผ๋ ๋ง์ ์๋ฌด ์๊ฐ์์ด Collection์ Queue๋ก ๊ตฌํ์ ์๋ ํ๋ค. ํ์ง๋ง ์์ฑํ๋ค ๋งํ๊ณ ๋์์ผ, Queue๋ ์ค๊ฐ์ ์์๋ค์ ์ํํ ์๊ฐ ์๋ค๋ ์ฌ์ค์ด ๊ธฐ์ต๋ฌ๋ค! ๋ฐ๋ผ์ ์ค๊ฐ์ ์์๋ค์ ์ํํ ์ ์๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ก ์ฝ๋๋ฅผ ์์ ํ๋ค. ์ค์ ์ฝ๋ฉ ํ ์คํธ์์ ํค๋งค์ง ์์ผ๋ ค๋ฉด, Collection๋ค์ ์์๊ด๊ณ์ ๊ฐ ๋ฉ์๋๋ฅผ ์๊ณ ์๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ๋ค.
Collection์ ์์๊ด๊ณ๋ฅผ ํ ๋ฒ ์ ๋ฆฌํด์ผ ํ ๊ฒ ๊ฐ๋ค.
'๐ > ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ] ์ค๋ชฉ (๋ฐฑ์ค, 2615) (0) | 2022.01.25 |
---|---|
[์๊ณ ๋ฆฌ์ฆ] ํฌ๋ก์ํฐ์ ์ํ๋ฒณ (๋ฐฑ์ค, 2941) (0) | 2021.03.03 |
[์๊ณ ๋ฆฌ์ฆ] ๋ฑ (๋ฐฑ์ค, 3190) (0) | 2020.11.20 |
[์๊ณ ๋ฆฌ์ฆ] โพ (๋ฐฑ์ค, 17281) (0) | 2020.11.20 |
[์๊ณ ๋ฆฌ์ฆ] 2048(Easy) (๋ฐฑ์ค, 12100) (0) | 2020.11.20 |