본문 바로가기
[ 다먹살 ]/- Coding

[백준] 1157 단어공부

by 엉망으로살기 2021. 9. 6.
반응형

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

댓글