알고리즘/입출력,문자열
자바알고리즘 - 문자열 - 백준 1157 단어 공부
ABCDEFG_
2024. 10. 8. 17:36
자바알고리즘 - 문자열 - 백준 1157 단어 공부
문제
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
생각
1. 입력받을 때 대문자건 소문자건 -97과 -65 아스키 코드를 이용해서 알파벳순으로 저장해 놓는다.
2. 저장해놓은 배열을 이용하여 26번까지 순회하며 max값을 찾는다.
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int[] arr = new int[26]; //영어 개수
String str = bf.readLine();
for(int i=0; i<str.length();i++) {
if(str.charAt(i)>='a' && str.charAt(i)<='z') {
arr[str.charAt(i) - 97]= arr[str.charAt(i) - 97]+1; //소문자면 char계산을 통해 해당 문자 +1
}
else {
arr[str.charAt(i)-65] = arr[str.charAt(i)-65]+1; //대문자면 char계산을 통해 해당 문자+1
}
}
int max=0;
char ch = '?';
for(int i=0; i<26; i++) {
if(arr[i]>max) {
max = arr[i];
ch = (char)(i+65); //대문자로변경
}
else if(arr[i]==max) {
ch='?';
}
}
System.out.println(ch);
}
}