๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/1283)
< ๋จ์ถํค ์ง์ >
๋ฌธ์ ํ์ด
๋จผ์ ๋จ์ด๋ฅผ ์ ๋ ฅ๋ฐ์ผ๋ฉด์ ๋จ์ด์ ์ฒซ ๊ธ์๊ฐ ๋จ์ถํค์ธ์ง ํ์ธํ์ฌ ๋จ์ถํค๊ฐ ์๋๋ผ๋ฉด ๋จ์ถํค๋ก ์ค์ ํ๋ค. ๋ชจ๋ ๋จ์ด์ ์ฒซ ๊ธ์๊ฐ ์ด๋ฏธ ๋จ์ถํค๋ผ๋ฉด ์ผ์ชฝ๋ถํฐ ์ฐจ๋ก๋๋ก ์ํ๋ฒณ์ ๋ณด๋ฉด์ ๋จ์ถํค๋ก ์ง์ ์ ๋ ๊ฒ์ด ์๋ค๋ฉด ๋จ์ถํค๋ก ์ค์ ํ๋ค.
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.HashSet;
import java.util.Set;
import java.util.StringTokenizer;
public class _1283_ { // ๋จ์ถํค ์ง์
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());
Set<Character> set = new HashSet<>();
ArrayList<String> list = new ArrayList<>();
boolean flag = false;
for (int i = 0; i < n; i++) {
st = new StringTokenizer(bf.readLine());
flag = false;
while (st.hasMoreTokens()) {
String str = st.nextToken();
if (flag) {
bw.write(str+" ");
} else if (!set.contains(Character.toUpperCase(str.charAt(0)))) {
set.add(Character.toUpperCase(str.charAt(0)));
str = "[" + str.charAt(0) + "]" + str.substring(1, str.length());
if (!list.isEmpty()) {
for (int j = 0; j < list.size(); j++) {
bw.write(list.get(j) + " ");
}
list.clear();
}
bw.write(str + " ");
flag = true;
} else {
list.add(str);
}
}
if (!flag) {
for (int j = 0; j < list.size(); j++) {
String str = list.get(j);
if (!flag) {
for (int k = 0; k < str.length(); k++) {
if (!set.contains(Character.toUpperCase(str.charAt(k)))) {
set.add(Character.toUpperCase(str.charAt(k)));
str = str.substring(0, k) + "[" + str.charAt(k) + "]"
+ str.substring(k + 1, str.length());
flag = true;
break;
}
}
}
bw.write(str + " ");
}
}
list.clear();
bw.write("\n");
}
bw.flush();
}
}
๋ณ์)
n : ์ต์ ์ ๊ฐ์
set : ๋จ์ถํค ๋ชจ์
list : ํ๋์ ์ต์ ๋ฌธ์์ด ์ ์ฅ
flag : ๋จ์ถํค ์ค์ ์ฌ๋ถ
str : ๋ฌธ์์ด
ํ๋์ ์ต์ ์ ๋ํด ๋จ์ด๋ฅผ ์ ๋ ฅ๋ฐ์ ๋จ์ด์ ์ฒซ ๊ธ์๊ฐ ๋จ์ถํค์ธ์ง ์๋์ง ํ์ธํ๋ค. ๋จ์ถํค๊ฐ ์๋๋ผ๋ฉด ๋จ์ถํค๋ก ์ค์ ํ๋ค. ๋จ์ถํค๋ก ์ค์ ํ์ผ๋ฉด ๋๋จธ์ง๋ ํ์ธํ ํ์ ์์ผ๋ฏ๋ก ๊ทธ๋ฅ ๋ฌธ์์ด์ ์ถ๋ ฅํ๋ค.
๋ง์ฝ ๋ชจ๋ ๋จ์ด์ ์ฒซ ๊ธ์๊ฐ ๋จ์ถํค๋ก ์ค์ ๋์ด ์๋ค๋ฉด ๋จ์ด๋ฅผ ์ผ์ชฝ๋ถํฐ ์ดํผ๋ฉด์ ๋จ์ถํค๋ฅผ ํ์ธํด์ผ ํ๋ค. ๋จ์ด๋ฅผ ์ผ์ชฝ๋ถํฐ ์ฐจ๋ก๋๋ก ๋ณด๋ฉด์ ๋จ์ถํค๊ฐ ์๋๋ผ๋ฉด ๋จ์ถํค๋ก ์ค์ ํ๊ณ ์์ ๊ฐ์ด ๋๋จธ์ง๋ ํ์ธํ ํ์ ์์ผ๋ฏ๋ก ๋ฌธ์์ด์ ์ถ๋ ฅํ๋ค.
๋ฌธ์์ด์ ์ถ๋ ฅํ๋๋ฐ ์๋ ๋ฌธ์์ด๊ณผ ์ผ์นํ๋๋ก ๊ณต๋ฐฑ์ ์ ์ถ๋ ฅํด์ค์ผ ํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 1189_์ปด๋ฐฑํ (1) | 2023.12.11 |
---|---|
[Baekjoon] 21937_์์ (1) | 2023.12.08 |
[Baekjoon] 1446_์ง๋ฆ๊ธธ (0) | 2023.12.06 |
[Baekjoon] 4883_์ผ๊ฐ ๊ทธ๋ํ (2) | 2023.12.05 |
[Baekjoon] 12026_BOJ ๊ฑฐ๋ฆฌ (1) | 2023.12.04 |