[BOJ] 1157번 단어 공부 - JAVA

최영환·2022년 9월 22일
0

BaekJoon

목록 보기
2/87
post-thumbnail
## Java 풀이 시 유의사항 ##
클래스명은 Main 으로 작성해야함!

💡 문제

💬 입출력 예시

📌 풀이(소스코드)

import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws Exception {
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();

        int[] arr = new int [26];	// 알파벳 배열 선언

		// 인덱스 값 계산 후 해당 인덱스의 값 증가
        for (int i = 0; i < str.length(); i++) {
            // 대문자인 경우
            if ('A' <= str.charAt(i) && str.charAt(i) <= 'Z') {
                arr[str.charAt(i) - 'A']++;
            }
            // 소문자인 경우
            else {
                arr[str.charAt(i) - 'a']++;
            }
        }

		// 사용빈도가 가장 높은 알파벳 탐색 후 출력
        int max = -1;
        char result = '?';
        for (int i = 0; i < 26; i++) {
            if (arr[i] > max) {
                max = arr[i];
                result = (char) (i + 65);
            }
            else if (arr[i] == max) {
                result = '?';
            }
        }
        System.out.println(result);
        in.close();
    }
}

📄 해설

  • 문자열을 입력 받고, 알파벳 사용 빈도를 저장하기 위한 배열 선언
  • 문자열의 문자(알파벳)들을 확인하여 해당 문자(알파벳)의 인덱스 값들을 계산 후 인덱스의 값을 증가 시킴
    • 이때, 대소문자별 계산을 달리 해주어야함(ASCII 코드 값이 다르기 때문)
  • 알파벳 배열을 확인하여 가장 많이 사용된 문자를 결과 문자로 설정
  • 최댓값과 같은 값이 있을 경우 ? 를 결과 문자로 설정
profile
조금 느릴게요~

0개의 댓글