본문 바로가기
2024 하계 모각코

[0707] 모각코 #1

by 커뮹 2024. 7. 7.

【 오늘의 목표 】

  • 백준 1문제 풀기 

백준 1문제 풀기

오늘 푼 백준 문제: 1157번 단어 공부 (https://www.acmicpc.net/problem/1157)

 

  • 문제: 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
  • 입력: 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
  • 출력: 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.

【 해결한 코드 】

import java.util.Scanner;

public class Main{
	public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        char[] arr = s.toCharArray();
        
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] >= 97 && arr[i] <= 122) {
                arr[i] = (char)(arr[i] - 32);
            }
        }
        
        int[] al = new int[26];
        
        for (int i = 0; i < arr.length; i++) {
            al[arr[i]-65]++;
        }
        
        int max = 0;
        boolean same = false;
        
        for (int i = 0; i < al.length-1; i++) {
            for (int j = i+1; j < al.length; j++) {
                if (al[i] < al[j] && al[max] < al[j]) {
                    max = j;
                } else if (al[j] < al[i] && al[max] < al[i]) {
                    max = i;
                }
            }
        }
        
        for (int i = 0; i < al.length-1; i++) {
            for (int j = i+1; j < al.length; j++) {
                if (al[i] == al[j] && al[i] != 0 && al[max] <= al[i]) {
                    same = true;
                }
            }
        }
        
        if(!same) {
            System.out.println((char)(max+65));
        } else {
            System.out.println("?");
        }
        
	}
}

 

'2024 하계 모각코' 카테고리의 다른 글

[0818] 모각코 회고록  (0) 2024.08.19
[0804] 모각코 #5  (0) 2024.08.04
[0721] 모각코 #3  (0) 2024.07.21
[0714] 모각코 #2  (0) 2024.07.14
※ 하계 모각코 - 방학 목표 ※  (0) 2024.07.07