https://www.acmicpc.net/problem/1157
1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
1. 아스키코드를 이용해서 각 문자별로 갯수를 구한 후 배열에 저장한다. (배열 cnt)
2. 최대 개수를 가지고 있는 문자의 인덱스(index)와 그 개수(max)를 구한다.
3. 배열 cnt를 기본 오름차순 정렬한 후, 맨 마지막 원소가 아닌 값 중에 최대값이 있는 지 확인한다.
3-1. 있으면 ?를 리턴한다.
3-2. 없으면 index를 리턴한다.
문제 및 입출력
코드
import java.util.Scanner;
import java.util.Arrays;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
String input = sc.nextLine().toUpperCase();
int[] cnt = new int[26];
int max = -1;
int index = -1;
for(int i=0; i<input.length(); i++)
{
cnt[input.charAt(i)-65]++;
}
for(int i=0; i<cnt.length; i++)
{
if(cnt[i]>max)
{
max = cnt[i];
index = i;
}
}
Arrays.sort(cnt);
for(int i=cnt.length-2; i>=0; i--)
{
if(cnt[cnt.length-1]==cnt[i])
{
System.out.println("?");
return;
}
}
System.out.println((char)(index+65));
}
}
'[ 다먹살 ] > - Coding' 카테고리의 다른 글
[백준] 5622 다이얼 (0) | 2021.09.06 |
---|---|
[백준] 2908 상수 (0) | 2021.09.06 |
[백준] 2941 크로아티아알파벳 (0) | 2021.09.06 |
[백준] 10872 팩토리얼 (0) | 2021.09.05 |
[백준] 10818 최소, 최대 (0) | 2021.09.05 |
댓글