๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 26043_์‹๋‹น ๋ฉ”๋‰ด

๋ฟŒ์•ผ._. 2025. 7. 7. 12:20
๋ฌธ์ œ(์ถœ์ฒ˜: 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