728x90

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

 

1181번: 단어 정렬

첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.

www.acmicpc.net

 

 

풀이)

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

public class Main_BJ_1181_단어정렬 {
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        String[] arr = new String[n];
        for(int i=0; i<n; i++){
            arr[i] = br.readLine();
        }
        Arrays.sort(arr, new Comparator<String>(){
            @Override
            public int compare(String s1, String s2){
                if(s1.length() == s2.length())
                    return s1.compareTo(s2);
                else
                    return s1.length() - s2.length();
            }
        });


        System.out.println(arr[0]);
        for(int i=1; i<n; i++) {
            if(!arr[i].equals(arr[i-1]))
                System.out.println(arr[i]);
        }
    }//main
}

문자열 문제를 간단히 풀어봤다.

Comparator에서 length를 어떻게 비교하지 했는데, 생각보다 간결함...

또한, 문자열 비교(숫자도 가능)할 때 compareTo를 쓴다는 사실을 잊지 말자!

 

 

참고한 블로그!

https://st-lab.tistory.com/112

 

[백준] 1181번 : 단어 정렬 - JAVA [자바]

www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문

st-lab.tistory.com

 

728x90

'코테 > 백준' 카테고리의 다른 글

백준 2178 미로 탐색(JAVA)  (0) 2023.01.31
백준 11866 요세푸스 문제0(JAVA)  (0) 2023.01.30
백준 11725 트리의 부모찾기(JAVA)  (0) 2023.01.29
백준 1271 엄청난 부자2(JAVA)  (0) 2023.01.28
백준 2579 계단 오르기(JAVA)  (0) 2023.01.27

+ Recent posts