๋ฌธ์
1966๋ฒ: ํ๋ฆฐํฐ ํ
์ฌ๋ฌ๋ถ๋ ์๋ค์ํผ ์ฌ๋ฌ๋ถ์ ํ๋ฆฐํฐ ๊ธฐ๊ธฐ๋ ์ฌ๋ฌ๋ถ์ด ์ธ์ํ๊ณ ์ ํ๋ ๋ฌธ์๋ฅผ ์ธ์ ๋ช ๋ น์ ๋ฐ์ โ์์๋๋กโ, ์ฆ ๋จผ์ ์์ฒญ๋ ๊ฒ์ ๋จผ์ ์ธ์ํ๋ค. ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์๊ฐ ์์ธ๋ค๋ฉด Queue ์๋ฃ๊ตฌ์กฐ์
www.acmicpc.net
ํ์ด
GitHub - ruhz3/coding-test: To prepare for coding test
To prepare for coding test. Contribute to ruhz3/coding-test development by creating an account on GitHub.
github.com
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 |