본문 바로가기
Algorithm

백준 10814 / 나이순 정렬

코동이 2020. 7. 9.
import java.io.*;
import java.util.*;

public class Main {
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int num = Integer.parseInt(br.readLine());
		String line="";
		List<String[]> list = new ArrayList<>();
		String[][] array = new String[num][2];
		for(int i=0;i<num;i++) {
			line=br.readLine();
			array[i][0] = line.split(" ")[0];
			array[i][1] = line.split(" ")[1];
			list.add(array[i]);
		}

		Collections.sort(list, new Comparator<String[]>() {
			@Override
			public int compare(String[] s1, String[] s2) {
				return (Integer.parseInt(s1[0]) - Integer.parseInt(s2[0]));
			}
		});
		StringBuilder sb = new StringBuilder();
		for(String[] val : list) {
			sb.append(val[0]+" "+val[1]+"\n");
		}
		System.out.println(sb.toString());
	}
}

 Collections.sort에서 정렬 시, 나이순만 따지고 같은 나이에서는 입력순서로 따진다는 말은 나이만 크기로 비교해서 정렬하라는 의미이다. Comparator interface에서 compare를 정의하여 나이만 비교해서 정렬한다.

반응형

'Algorithm' 카테고리의 다른 글

백준 11720 / 숫자의 합  (0) 2020.07.09
백준 10989 / 수 정렬하기 3  (0) 2020.07.09
백준 11652 / 카드  (0) 2020.07.09
백준 11650 / 좌표 정렬하기  (0) 2020.07.09
StringTokenizer vs Split  (0) 2020.07.07