[λ°±μ€/Java] 볡νΈν 9046
λ¬Έμ
https://www.acmicpc.net/problem/9046
9046λ²: 볡νΈν
μ λ ₯μ T(1 ≤ T ≤ 20)λ ν μ€νΈ μΌμ΄μ€λ‘, μ λ ₯ μ μΌ μλ¨μ μ£Όμ΄μ§λ€. κ°κ°μ ν μ€νΈ μΌμ΄μ€λ ν μ€λ§λ€ μλ¬Έμμ 곡백μΌλ‘ μ΄λ£¨μ΄μ§ μμ΄ λ¬Έμ₯μ΄ μ£Όμ΄μ§λ€. μ΄ λ¬Έμ₯μ κΈΈμ΄λ μ μ΄λ 1μ΄μμ΄
www.acmicpc.net
νμ΄
μμ΄ μνλ²³μ μ΄ 26κ°μ΄λ―λ‘ 26κ°μ λ°°μ΄μ μ μΈν΄μ€λ€.
Stringμ ν κΈμμ© μλΌμ (int) input.charAt(i)λ‘ μ«μλ‘ λ³νν΄μ€λ€.
aλ 97, bλ 98, cλ 99 .... μ΄λ―λ‘
(μ«μλ‘ λ³ν) - 97μ ν΄μ λ°°μ΄μ index 0λΆν° μ°¨λ‘λλ‘ +1μ ν΄μ€λ€.
κ·Έλ¦¬κ³ μ΅λκ°μ ꡬνλ€.
λ€μμΌλ‘λ μ΅λκ°μ΄ νλμΈμ§ κ²μνλ€.
νλμ΄λ©΄ κ·Έ λ¬Έμμ΄μ μΆλ ₯νκ³ , μλλΌλ©΄ ?μ μΆλ ₯νλ€.
package algorithm;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
// ν΄λ
νλ ν¨μ
public char decode(String input) {
int[] number = new int[26]; // μμ΄ μνλ²³μ 26κ°
for (int i = 0; i < input.length(); i++) {
char search = input.charAt(i);
if ((int) search != 32) { // μμ€ν€μ½λλ a=97 μ΄λ―λ‘ 97λ₯Ό λΉΌμ ν΄λΉνλ κ°μ νλμ© μ¦κ°μν¨λ€.
number[((int) search) - 97]++;
}
}
int check = 0;
int max = 0;
int index = -1;
for (int i = 0; i < number.length; i++) { // μ΅λκ°κ³Ό κ·Έλμ indexλ₯Ό ꡬνκΈ°
if (max < number[i]) {
max = number[i];
index = i;
}
}
for (int i = 0; i < number.length; i++) { // λ§μ½ μ΅λκ°μ΄ μ¬λ¬κ°λΌλ©΄ check++λ₯Ό ν΄μ£ΌκΈ°
if (max == number[i]) {
check++;
}
}
// check=1μ΄λ©΄ maxκ° 1, μλλΌλ©΄ 2 μ΄μμ΄λ€.
return check > 1 ? '?' : (char) (index + 97);
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
char[] answer = new char[num];
Main m = new Main();
for (int i = 0; i < answer.length; i++) {
String input = br.readLine();
answer[i] = m.decode(input);
}
for (int i = 0; i < answer.length; i++) {
System.out.println(answer[i]);
}
}
}
μ λ΅