๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/5093)
< Letter Replacement >
๋ฌธ์ ํ์ด
์ด๋ฏธ ๋์๋ ๋ฌธ์์ธ์ง ํ์ธํ์ฌ ๋์๋ ๋ฌธ์๋ผ๋ฉด HashMap์ ํ์ฉํ์ฌ ๋์ฒดํ๋ค.
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.HashMap;
import java.util.HashSet;
public class _5093_ { // Letter Replacement
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String str = "";
while (!(str = bf.readLine()).equals("#")) {
HashSet<Character> set = new HashSet<>();
HashMap<Character, Character> map = new HashMap<>();
String result = "";
int idx = 1;
for (int i = 0; i < str.length(); i++) {
if (!set.contains(Character.toLowerCase(str.charAt(i)))) {
set.add(Character.toLowerCase(str.charAt(i)));
result += str.charAt(i);
} else {
if (map.containsKey(Character.toLowerCase(str.charAt(i)))) {
result += map.get(Character.toLowerCase(str.charAt(i)));
} else {
if (idx == 1) {
map.put(Character.toLowerCase(str.charAt(i)), '*');
} else if (idx == 2) {
map.put(Character.toLowerCase(str.charAt(i)), '?');
} else if (idx == 3) {
map.put(Character.toLowerCase(str.charAt(i)), '/');
} else if (idx == 4) {
map.put(Character.toLowerCase(str.charAt(i)), '+');
} else if (idx == 5) {
map.put(Character.toLowerCase(str.charAt(i)), '!');
}
result += map.get(Character.toLowerCase(str.charAt(i)));
idx += 1;
}
}
}
bw.write(result + "\n");
}
bw.flush();
}
}
๋ณ์)
str : ์ ๋ ฅ ๋ฌธ์์ด
result : ์ถ๋ ฅ ๋ฌธ์์ด
idx : ๋ช ๋ฒ์งธ ๋ฐ๋ณต๋ ๋ฌธ์์ธ์ง
set : ํ์ฌ๊น์ง ๋์จ ๋ฌธ์
map : HashMap <๋ฌธ์, ๋์ฒด ๋ฌธ์>
#๊ฐ ์ ๋ ฅ๋๊ธฐ ์ ๊น์ง ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1) ๋ฌธ์์ด์ ํ์ํ๋ฉฐ ํ ๋ฒ๋ ๋์ค์ง ์์ ๋ฌธ์๋ผ๋ฉด set์ ์ถ๊ฐ ๋ฐ result์ ๋ฌธ์๋ฅผ ์ถ๊ฐํ๋ค.
2) ์ด๋ฏธ ๋์จ ๋ฌธ์๋ผ๋ฉด HashMap์ ํ์ํ์ฌ key๊ฐ์ผ๋ก ์๋ค๋ฉด result์ value๋ฅผ ๋ํด์ค๋ค. key๊ฐ์ผ๋ก ์๋ค๋ฉด HashMap์ ์ถ๊ฐํ๊ณ result์๋ ์ถ๊ฐํ๋ค.
result๋ฅผ ์ถ๋ ฅํ๋ค.

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 6513_Deli Deli (1) | 2025.02.04 |
---|---|
[Baekjoon] 7107_Journey of A Knight (1) | 2025.02.03 |
[Baekjoon] 31047_Warehouse (1) | 2025.01.23 |
[Baekjoon] 9357_Eligibility (1) | 2025.01.22 |
[Baekjoon] 6973_Dynamic Dictionary Coding (0) | 2025.01.21 |