본문 바로가기
알고리즘/문제풀이

[Java] 백준 1157 : 단어 공부

by abcodef 2021. 11. 25.

🔗 문제 내용

https://www.acmicpc.net/problem/1157

 

1157번: 단어 공부

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

www.acmicpc.net

🌱 문제 풀이 방법

구현, 문자열 문제라 문자열 다루는 법만 찾아보고 해결함.
아스키 코드 표를 오랜만에 확인함.

🤔 공부가 필요한 부분

시간 복잡도 계산 방법에 대해 꼭 공부하고 넘어가야함.

💻 코드

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();

        int[] count = new int[26];
        int tmp;
        int length = input.length();
        int max=-1;

        char answer = '?';

        for(int i=0; i<length;i++) {
        tmp = (int)input.charAt(i);
        if((tmp>=97)&&(tmp<=122)){
            tmp=tmp-97;
        }else {
            tmp=tmp-65;
        }
        count[tmp]+=1;
        }

        for(int i=0;i<26;i++) {
            if(max<count[i]) {
                max=count[i];
                answer=(char)(i+65);
            }
            else if(max==count[i]) {
                answer='?';
            }
        }
        System.out.print(answer);
}
}

댓글