본문 바로가기

알고리즘/정렬

자바 | 백준 | 10814 | 나이순 정렬 | Comparator, 람다식

solution

나이순, 나이가 같으면 가입한 순 --> 가입한 순서는 이미 정렬된 상태. 나이만 비교하면 된다.

// 10814, 나이순 정렬
package BOJ;

import java.io.*;
import java.util.*;

public class BOJ_10814 {
	int N;
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int N = Integer.parseInt(br.readLine());
		
		String [][]members = new String[N][2];
		
		for (int i=0;i<N;i++) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			members[i][0]=st.nextToken();
			members[i][1]=st.nextToken();
		}
		
		// 람다식
		Arrays.sort(members, (s1, s2) -> {
			return Integer.parseInt(s1[0])-Integer.parseInt(s2[0]);
		});
		
         // Comparator
		Arrays.sort(members, new Comparator<String[]>(){
			@Override
			public int compare(String [] s1, String [] s2) {
				return Integer.parseInt(s1[0])-Integer.parseInt(s2[0]);
			}
		});
		
		for (String [] member:members) {
			System.out.println(member[0]+" "+member[1]);
		}
		
	}

}

 

문제 출처 www.acmicpc.net/problem/10814

 

10814번: 나이순 정렬

온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을

www.acmicpc.net