[Baekjoon] 6325_Definite Values
๋ฌธ์ (์ถ์ฒ: 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"์ ์ถ๋ ฅํ๋ค.