pullwall
Well done! 코딩
pullwall
전체 방문자
오늘
어제
  • 분류 전체보기 (151)
    • 개발환경 (2)
    • java study (21)
    • 백준 단계별 (51)
    • 알고리즘 (3)
    • AI (43)
    • 클라우드 (3)
      • Kubernetes in Google (3)
    • 논문 (5)
    • 리눅스 (1)
    • AWS (4)
    • 수학 (15)
    • 기타 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • dataset
  • Ai
  • 선택정렬
  • 수학
  • 백준
  • 백준 단계별
  • Kubernetes
  • pytorch
  • 정렬알고리즘
  • 자바독학
  • 쿠버네티스
  • 단계별
  • AWS
  • 논문리뷰
  • LLM
  • 정렬
  • Google
  • 자바
  • Java
  • 알고리즘

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
pullwall

Well done! 코딩

백준 단계별

[Java] 백준 1181: 단어 정렬

2023. 2. 16. 13:49
728x90

 

import java.util.Scanner;
import java.util.Arrays;
import java.util.Comparator;
 
public class Main {
	public static void main(String[] args) {
    
		Scanner in = new Scanner(System.in);
 
		int N = in.nextInt();
		String[] arr = new String[N];
 
		in.nextLine();	// 개행 버림
 
		for (int i = 0; i < N; i++) {
			arr[i] = in.nextLine();
		}
		
		Arrays.sort(arr, new Comparator<String>() {
			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]);
			}
		}
	}
 
}

 

저번 문제처럼 람다식을 Arrays.sort에 적용시키는 것이 아닌

sort안에 있는 compare 메소드를 오버라이딩 하는 방법으로 문제를 해결하였다.

 

문자열 비교는 compareTo()메소드를 사용하면 간단히 사전순으로 비교하여 정렬할 수 있다.

728x90

'백준 단계별' 카테고리의 다른 글

[Java] 백준 10814: 나이순 정렬  (0) 2023.02.16
[Java] 백준 11650: 좌표 정렬하기  (0) 2023.02.15
[Java] 백준 1427: 소트인사이드  (0) 2023.02.15
[Java] 백준 2108: 통계학  (0) 2023.02.14
[Java] 백준 10989: 수 정렬하기 3  (0) 2023.02.14
    '백준 단계별' 카테고리의 다른 글
    • [Java] 백준 10814: 나이순 정렬
    • [Java] 백준 11650: 좌표 정렬하기
    • [Java] 백준 1427: 소트인사이드
    • [Java] 백준 2108: 통계학
    pullwall
    pullwall

    티스토리툴바