๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 6325_Definite Values

๋ฟŒ์•ผ._. 2025. 5. 19. 16:40
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/6325)

< Definite Values >

 

๋ฌธ์ œ ํ’€์ด 

 

variable1 = variable2

 

variable2๊ฐ€ ์ด๋ฏธ ์„ ์–ธ๋˜์–ด ์žˆ๋‹ค๋ฉด variable1์ด ํ™•์‹คํ•œ ๊ฐ’์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค. HashSet์„ ์‚ฌ์šฉํ•˜์—ฌ variable2๊ฐ€ ์žˆ๋‹ค๋ฉด variable1์„ ๋„ฃ๊ณ , ์—†๋‹ค๋ฉด variable1์„ ์ œ๊ฑฐํ•œ๋‹ค.

 

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.HashSet;
import java.util.StringTokenizer;

public class _6325_ { // Definite Values

	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 t = 0;
		int cnt = 1;

		while ((t = Integer.parseInt(bf.readLine())) != 0) {
			HashSet<String> set = new HashSet<>();
			set.add("a");

			for (int i = 0; i < t; i++) {
				st = new StringTokenizer(bf.readLine());

				String a = st.nextToken();
				st.nextToken();
				String b = st.nextToken();

				if (set.contains(b)) {
					set.add(a);
				} else {
					set.remove(a);
				}
			}

			ArrayList<String> list = new ArrayList<>(set);
			Collections.sort(list);

			bw.write("Program #" + (cnt++) + "\n");
			if (list.size() == 0) {
				bw.write("none\n");
			} else {
				for (int i = 0; i < list.size(); i++) {
					bw.write(list.get(i) + " ");
				}
				bw.write("\n");
			}
			bw.write("\n");
		}
		bw.flush();
	}
}
๋ณ€์ˆ˜)
t : ๋ผ์ธ ์ˆ˜
cnt : ์ผ€์ด์Šค 
set : HashSet <String>
a, b : variable1, variable2
list : ArrayList <String>

 

๋ผ์ธ ์ˆ˜๊ฐ€ 0์ด ์•„๋‹ ๋•Œ๊นŒ์ง€ ๋‹ค์Œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

1) ๋ณ€์ˆ˜ a๋Š” ์ผ์ •ํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋ฏ€๋กœ HashSet์— a๋ฅผ ์ €์žฅํ•œ๋‹ค.

2) t๋ผ์ธ๋งŒํผ "variable1 = variable2"๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. variable2๊ฐ€ HashSet์— ์žˆ๋‹ค๋ฉด ํ™•์‹คํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋ฏ€๋กœ variable1์„ HashSet์— ์ €์žฅํ•˜๊ณ , ์—†๋‹ค๋ฉด ํ™•์‹คํ•œ ๊ฐ’์„ ๊ฐ€์ง€์ง€ ์•Š์œผ๋ฏ€๋กœ HashSet์—์„œ ์ œ๊ฑฐํ•œ๋‹ค.

3) HashSet ๊ฐ’์„ ArrayList์— ์ €์žฅํ•˜์—ฌ ์ •๋ ฌํ•œ๋‹ค.

4) ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๋ฒˆํ˜ธ์™€ ArrayList ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค. ์ด๋•Œ, ์•„๋ฌด ๊ฐ’์ด ์—†๋‹ค๋ฉด "none"์„ ์ถœ๋ ฅํ•œ๋‹ค.