본문 바로가기
아기 개발자/백준 문제풀이

[BOJ_JAVA] 백준 1157번: 단어공부 @달깅

by 달깅 2019. 11. 1.

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

 

스태틱 멤버에서 논스태틱에 접근하려면 오류가 뜬다!

그래서 이 문제를 쓸 때 다른 메소드를 풀려면 그 메소드도 static 선언을 해줘야한다(라고 이해함ㅎ)

 

어떻게 풀까 고민을 많이 했는데 count 변수랑, 또 most 변수를 선언해서

count가 같거나 높아지면 most를 갱신하는 방법으로 할까 했다.

 

막 해쉬맵도 쓰면서 막막 죽쑤고 있었는데 아스키코드를 알면 쉽단다..ㅜㅜㅜ

아스키코드를 검색해봤다.

 

근데 놀라운건 string.charAt(  ) -숫자 를 하면 바로 아스키코드로 변환이 돼서 계산이 된다..!!

이걸 활용해서 만들어봤다

 

영어 알파벳은 대문자 65~96? 까지고 소문자는 97부터라고 한다.

 

 

 


정답코드

 

import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String input=sc.next();
        System.out.println(howMany(input));
    }



    public static char howMany(String input) {
        int count=0;
        int[] alpha=new int[26];
        String str=input.toUpperCase();
        char result='?';
        

        for (int i=0; i<str.length(); i++) {
            alpha[str.charAt(i)-65]+=1;
            if (count<alpha[str.charAt(i)-65]) {
                count=alpha[str.charAt(i)-65];
                result=str.charAt(i);
            } else if (count==alpha[str.charAt(i)-65]) {
                result='?';
            }
        }

        return result;

    }

}

댓글