View
https://www.acmicpc.net/problem/1157
📚 문제
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
예제 입력 | 예제 출력 |
Mississipi | ? |
zZa | Z |
📝 문제 해결
1. 대문자와 소문자를 구분하지 않기 때문에 입력받은 문자열을 모두 대문자로 변경해준다.
str.toUpperCase();
2. 영문자 개수 크기로 배열을 생성해주고 아스키코드를 사용하여 배열에 해당 문자의 인덱스의 카운트를 증가시켜준다.
💡 chatAt(i)-'A' / charAt(i)-65 : 영문자를 int 변수로 변환
문자 E의 인덱스 = 69(E의 아스키코드) - 65(A의 아스키코드)
3. max값과 비교하여 max보다 크면 최대값을 해당 인덱스으로 갱신 & result를 해당 문자 갱신
하지만, max값이 같다면 물음표를 출력한다.
💻 코드
package BOJ;
import java.util.Scanner;
public class No1157 {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
String str = sc.next().toUpperCase();
int[] count = new int[26];
int max = 0;
char result = '?';
for(int i=0; i<str.length(); i++){
int index = str.charAt(i)-'A';
count[index]++;
if(max < count[index]){
max = count[index];
result = str.charAt(i);
}else if(max == count[index]){
result = '?';
}
}
System.out.println(result);
}
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[DFS/BFS] 백준 1012번 유기농 배추(Java) (0) | 2023.09.22 |
---|---|
[DFS/BFS] 백준 1926번 그림(Java) (0) | 2023.09.22 |
[DFS/BFS] 백준 2468번 안전영역(Java) (0) | 2023.09.15 |
reply