반응형
문제
풀이
1. 알파벳 개수만큼의 배열을 만든다
2. 각 알파벳이 사용된 횟수를 만든 배열에 기록한다.
3. 기록된 횟수로 max 값을 구한다.
4. max 값의 Index 도 같이 기록한다.
5. max 값의 Index 를 이용해 가장 많이 사용된 알파벳을 출력한다.
코드
package Study.src.bronze;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.OptionalInt;
public class B1157_2 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String A = br.readLine();
String a = A.toUpperCase();
if (a.length() > 1000000) return;
// 알파벳 개수
int[] chk = new int[26];
int max = 0;
int maxIndex = 0;
// 각 알파벳이 사용된 횟수 기록
for (int i = 0; i < a.length(); i++) {
chk[a.charAt(i) - 'A']++;
}
// 기록된 횟수로 max 값 구하기
for (int i = 0; i < chk.length; i++) {
if (max < chk[i]) {
max = chk[i];
maxIndex = i;
} else if (max == chk[i]) { // max 값과 동일한 값이 있을 경우 확인
maxIndex = -2; // ? 출력
}
}
System.out.println(Character.toString(maxIndex + 'A'));
}
}
ASCII TABLE 아스키 코드값
아스키 코드값은 알고리즘에서 자주 응용되므로 알아두면 좋다.
반응형