단어 공부 [백준] 1157번 java

최준호·2022년 5월 6일
0

algorithm

목록 보기
39/39
post-thumbnail

문제 링크

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Locale;

public class B1157 {
    public static void main(String[] args) throws Exception{
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String input = bf.readLine().trim();

        solve(input.toUpperCase(Locale.ROOT));
    }
    public static void solve(String input){
        //알파벳 체크 배열
        int[] alphabet = new int[26];
        char[] chars = input.toCharArray();
        for(char c : chars){
            //배열의 값 증가
            alphabet[(c-'A')]++;
        }
        //4번찍힌 알파벳이 최고
        int max = Arrays.stream(alphabet).max().getAsInt();
        //2개 이상일 경우 체크
        long count = Arrays.stream(alphabet).filter(p -> p == max).count();

        if(count>1) {
            System.out.println("?");
            return ;
        }

        int index = 0;
        for(int a : alphabet){
            if(a == max) break;
            index++;
        }
        char maxAlphabet = (char)('A'+index);
        System.out.println(maxAlphabet);
    }
}

Arrays.asList(T).indexOf(value) 로 풀이하려 했으나 int value는 잘 못찾아서... for문을 돌려서 해결함. indexOf가 String만 찾는건가 잘 모르겠음ㅜㅜ

다른 글을 찾아보니 int 배열은 안되고 Integer 배열로 만들어야하는데 어차피 데이터 다 Integer로 바꾸고 있으니 for문 한번 돌리는게 나을거 같아서 다음과 같이 풂

profile
코딩을 깔끔하게 하고 싶어하는 초보 개발자 (편하게 글을 쓰기위해 반말체를 사용하고 있습니다! 양해 부탁드려요!) 현재 KakaoVX 근무중입니다!

0개의 댓글