๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/26043)
< ์๋น ๋ฉ๋ด >
๋ฌธ์ ํ์ด
Queue๋ฅผ ํ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
์ ํ 1์ผ ๋๋ Queue์ ์ ์ฅ
์ ํ 2์ผ ๋๋ Queue์์ poll ํ ๊ฐ๊ณผ ๋ฉ๋ด ๋ฒํธ๊ฐ ์ผ์นํ๋์ง ํ์ธ ํ ์ผ์นํ๋ฉด A์ ์ ์ฅ์, ์ผ์นํ์ง ์์ผ๋ฉด B์ ์ ์ฅํ๋ค.
๋ชจ๋ ์์ฌ๊ฐ ๋๋ ๋ค Queue์ ๊ฐ์ด ๋จ์์๋ค๋ฉด C์ ์ ์ฅํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class _26043_ { // ์๋น ๋ฉ๋ด
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int n = Integer.parseInt(bf.readLine());
ArrayList<Integer> a = new ArrayList<>();
ArrayList<Integer> b = new ArrayList<>();
ArrayList<Integer> c = new ArrayList<>();
Queue<int[]> queue = new LinkedList<>();
for (int i = 0; i < n; i++) {
st = new StringTokenizer(bf.readLine());
int cmd = Integer.parseInt(st.nextToken());
if (cmd == 1) {
queue.add(new int[] { Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()) });
} else {
int num = Integer.parseInt(st.nextToken());
int info[] = queue.poll();
if (info[1] == num) {
a.add(info[0]);
} else {
b.add(info[0]);
}
}
}
while (!queue.isEmpty()) {
c.add(queue.poll()[0]);
}
if (a.size() == 0) {
bw.write("None\n");
} else {
Collections.sort(a);
for (int i = 0; i < a.size(); i++) {
bw.write(a.get(i) + " ");
}
bw.write("\n");
}
if (b.size() == 0) {
bw.write("None\n");
} else {
Collections.sort(b);
for (int i = 0; i < b.size(); i++) {
bw.write(b.get(i) + " ");
}
bw.write("\n");
}
if (c.size() == 0) {
bw.write("None\n");
} else {
Collections.sort(c);
for (int i = 0; i < c.size(); i++) {
bw.write(c.get(i) + " ");
}
bw.write("\n");
}
bw.flush();
}
}
๋ณ์)
n : ์ ๋ณด ๊ฐ์
a, b, c : ๋ณธ์ธ์ด ์ข์ํ๋ ๋ฉ๋ด๋ฅผ ๋จน์ ํ์ ๋ชฉ๋ก, ๋ณธ์ธ์ด ์ข์ํ์ง ์๋ ๋ฉ๋ด๋ฅผ ๋จน์ ํ์ ๋ชฉ๋ก, ์๋น์ ๋์ฐฉํ์์ผ๋ ์์ฌ๋ฅผ ํ์ง ๋ชปํ ํ์ ๋ชฉ๋ก
queue : Queue <int []>
cmd : ์ ํ
์ ๋ณด ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ์ ๋ณด ๊ฐ์๋งํผ ์ ๋ณด๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ค์ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
1) ์ ํ 1์ด๋ผ๋ฉด Queue์ ์ ์ฅ
2) ์ ํ 2๋ผ๋ฉด Queue์์ poll ํ ํ ๋ฉ๋ด ๋ฒํธ๋ฅผ ๋น๊ตํ๋ค. ๋ฉ๋ด ๋ฒํธ๊ฐ ๊ฐ๋ค๋ฉด a์ ์ ์ฅํ๊ณ , ๊ฐ์ง ์๋ค๋ฉด b์ ์ ์ฅํ๋ค.
๋ชจ๋ ์์ฌ๊ฐ ๋๋ ๋ค Queue์ ๊ฐ์ด ๋จ์์๋ค๋ฉด ์์ฌ๋ฅผ ํ์ง ๋ชปํ ํ์๋ค์ด๋ฏ๋ก c์ ์ ์ฅํ๋ค. ๊ฐ ArrayList a, b, c๊ฐ ๋น์ด์๋ค๋ฉด None์ ์ถ๋ ฅํ๊ณ ๊ทธ๋ ์ง ์๋ค๋ฉด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ํ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 3518_๊ณต๋ฐฑ์ ๋น-์นธ (1) | 2025.07.09 |
---|---|
[Baekjoon] 16300_H to O (2) | 2025.07.08 |
[Baekjoon] 15323_ZigZag (1) | 2025.06.27 |
[Baekjoon] 13732_Falling Apples (2) | 2025.06.26 |
[Baekjoon] 4881_์๋ฆฌ์์ ์ ๊ณฑ (0) | 2025.06.25 |