문제 :
===========================================================================================
힌트 : 유니코드를 활용하여 풀었습니다, 알파뱃 개수만큼 int형 배열을 사용해서 중복 카운터로 사용했습니다.
============================================================================================
문제 풀이 : 주석 참고해서 보시면 됩니다 !
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr = new int[26]; //알파뱃의 중복 카운트를 위해 만든 배열
String str = sc.next();
int count = 0; // 중복 카운트한 배열의 최고값을 저장하기 위한 변수
char ch = ' ';
//입력문 길이만큼 반복, 소문자 범위일 때 반복문
for(int i = 0; i<str.length(); i++) {
if(str.charAt(i)>='a' && str.charAt(i)<='z') {
arr[str.charAt(i)-97]++; //a의 유니코드는 97이니 -97하면 0
}
//대문자
else if(str.charAt(i)>='A' && str.charAt(i)<='Z')
arr[str.charAt(i)-'A']++; //소문자와 마찬가지, 유니코드나 문자를 빼줘도 된다.
}
//제일 많은 알파벳을 대문자로 바꾸기 위한 for문
for(int i = 0; i<arr.length; i++) {
if(count<arr[i]) {
count = arr[i];
ch = (char)(i+65); //char로 형변환 해줘야 값이 나옴.
}
else if(count==arr[i]) { //최대값이 중복일 때 ? 넣기
ch = '?';
}
}
System.out.println(ch);
}//end main
}//end class
'백준 문제풀이' 카테고리의 다른 글
[백준] 1032번 문제풀이 (0) | 2024.02.20 |
---|---|
[백준] 1920번 문제풀이 (0) | 2024.02.10 |
[백준]10828번 문제풀이 (0) | 2024.02.05 |
[백준]25206번 문제 풀이 (0) | 2024.01.28 |
[백준] 3052번 문제 풀이 (2) | 2024.01.28 |