알고리즘/백준(BOJ)

[BOJ/백준] 1157번 단어 공부 _Java

3o14 2023. 8. 1. 09:45
728x90
반응형

 

 

백준 1157. 단어 공부 _Java

🧶 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String [] str = br.readLine().toUpperCase().split("");
		
		String[] str2 = Arrays.stream(str).distinct().toArray(String[]::new);
		// 배열 -> stream -> distinct(중복 제거) -> 배열
		
		int max = 0;
		String ans = null;
		for(String s:str2) {
			int cnt = Collections.frequency(Arrays.asList(str), s);
			if(cnt > max) {
				max = cnt;
				ans = s;
			}
			else if(cnt == max)
				ans = "?";
		}
		
		System.out.println(ans);
	}
}

 

배열 중복 제거하기

String[] str2 = Arrays.stream(str).distinct().toArray(String[]::new);
// 배열 -> stream -> distinct(중복 제거) -> 배열

 

배열 내 특정 요소의 개수 구하기

Collections.frequency(구할 리스트, 찾을 문자);
int cnt = Collections.frequency(Arrays.asList(str), s);

 

 

 

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

 

1157번: 단어 공부

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

www.acmicpc.net

 

 

LIST