https://www.acmicpc.net/problem/20920
나의 풀이
import java.util.*;
import java.io.*;
import java.util.stream.*;
public class Main {
public static void main(String args[]) throws Exception{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st=new StringTokenizer(br.readLine());
int n=Integer.parseInt(st.nextToken());
int m=Integer.parseInt(st.nextToken());
Map<String, Integer> map=new HashMap<>();
for(int i=0;i<n;i++){
String temp=br.readLine();
if(temp.length() < m){
continue;
}
if(map.get(temp) == null){// 처음 나온 값
map.put(temp,1);
}else{//있던 값이면 개수를 추가
map.replace(temp,map.get(temp)+1);
}
}
List<String> words = map.keySet().stream().collect(Collectors.toList());//리스트로 형변환
words.sort((o1, o2) -> {
int c1=map.get(o1);
int c2=map.get(o2);
if(c1==c2){//빈도수가 같으면
if(o1.length() == o2.length()) {//길이도 같으면
return o1.compareTo(o2); // 알파벳 오름차순
}
return o2.length()-o1.length(); // 내림차순
}
return c2-c1; // 내림차순
});
for(String s:words){
bw.write(s+"\n");
}
bw.flush();
br.close();
bw.close();
}
}
'코테풀이' 카테고리의 다른 글
[프로그래머스] 프로그래머스 무인도 여행 자바 java 풀이 (level2) (0) | 2023.02.22 |
---|---|
[백준] BOJ - 21921 블로그 자바 java (실버3) (0) | 2023.02.16 |
[프로그래머스] 프로그래머스 할인 행사 java 자바 (level2) (0) | 2023.02.15 |
[백준] BOJ - 22233 가희와 키워드 java 자바 풀이 (실버2) (0) | 2023.02.09 |
[백준] BOJ - 17484 진우의 달 여행 (Small) 자바 java (실버3) (0) | 2023.02.08 |