๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/9324)
< ์ง์ง ๋ฉ์์ง >
๋ฌธ์ ํ์ด
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;
public class _9324_ { // ์ง์ง ๋ฉ์์ง
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int t = Integer.parseInt(bf.readLine());
HashMap<Character, Integer> map = new HashMap<>();
for (int i = 0; i < t; i++) {
String str = bf.readLine();
int idx = 0;
boolean flag = false;
while (idx < str.length()) {
if (map.containsKey(str.charAt(idx))) {
map.replace(str.charAt(idx), map.get(str.charAt(idx)) + 1);
if (map.get(str.charAt(idx)) % 3 == 0) {
if (idx + 1 >= str.length() || str.charAt(idx + 1) != str.charAt(idx)) {
flag = true;
break;
}else {
idx += 2;
}
} else {
idx += 1;
}
} else {
map.put(str.charAt(idx), 1);
idx += 1;
}
}
if (flag) {
bw.write("FAKE\n");
} else {
bw.write("OK\n");
}
map.clear();
}
bw.flush();
}
}
๋ณ์)
t : ํ ์คํธ์ผ์ด์ค ๊ฐ์
map : ๊ฐ ๋ฌธ์ ๊ฐ์
str : ๋ฌธ์์ด
idx : ํ์ฌ ํ์ํ๋ ๋ฌธ์์ด ์ธ๋ฑ์ค
flag : ๋ฉ์์ง ํ๋ณ ์ฌ๋ถ
ํ ์คํธ์ผ์ด์ค ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ํ ์คํธ์ผ์ด์ค ์๋งํผ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1) ๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ๋๋ค.
2) ๋ฌธ์์ด์ ํ์
2-1) HashMap์ ์ด๋ฏธ ์๋ ๋ฌธ์๋ผ๋ฉด -> value+1
๋ง์ฝ value ๊ฐ์ด 3์ ๋ฐฐ์๋ผ๋ฉด ๋ค์ ๋ฌธ์๋ ํ์ฌ ๋ฌธ์์ ๊ฐ์ ๋ฌธ์์ฌ์ผ ํจ -> ๊ฐ์ง ์๋ค๋ฉด ์ข ๋ฃ, ๊ฐ๋ค๋ฉด idx+2
๋ง์ฝ value ๊ฐ์ด 3์ ๋ฐฐ์๊ฐ ์๋๋ผ๋ฉด idx+1
2-2) HashMap์ ์๋ ๋ฌธ์๊ฐ ์๋๋ผ๋ฉด put
3) flag ๊ฐ์ ๋ฐ๋ผ ์ ๋ต ์ถ๋ ฅ
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 21920_์๋ก์ ํ๊ท (0) | 2024.05.30 |
---|---|
[Baekjoon] 3054_ํผํฐํฌ ํ๋ ์ (0) | 2024.05.29 |
[Baekjoon] 11504_๋๋ ค ๋๋ ค ๋๋ฆผํ! (0) | 2024.05.27 |
[Baekjoon] 2891_์นด์ฝ๊ณผ ๊ฐํ (0) | 2024.05.24 |
[Baekjoon] 1544_์ฌ์ดํด ๋จ์ด (0) | 2024.05.23 |