Home 백준 10814번(나이순 정렬)[JAVA]
Post
Cancel

백준 10814번(나이순 정렬)[JAVA]

10814-1
10814-2

풀이

저는 2차원 배열로 풀었는데, 구글링을 해보니 class로 지정해서 풀기도 하고 그러더라구요..! 오랜만에 자바로 풀다보니 시간이 좀 걸려서 그건 나중에 풀어보기로…!

문자열의 2차원 배열이기 때문에, 바로 Arrays.sort()를 쓸 수 없어서 Comparator 인터페이스의 compare 메서드를 오버라이드하여 나이를 기준으로 재정의하였습니다! 가입한 순서는 나이를 기준으로만 배열이 재정렬되기 때문에, 그대로 놔두시면 가입한 순서대로 출력됩니다!

소스 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.io.*;
import java.util.*;

public class 나이순정렬 {
	static String[][] array;
	static int n;
	public static void main(String arg[]) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		n = Integer.parseInt(br.readLine());
		array = new String[n][2];
		for (int i = 0; i < n; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			array[i][0] = st.nextToken();
			array[i][1] = st.nextToken();
		}
		
		Arrays.sort(array, new Comparator<String[]>() {
			@Override
			public int compare(String[] o1, String[] o2) {
				return Integer.parseInt(o1[0]) - Integer.parseInt(o2[0]);
			}
		});
		
		for (int i = 0; i < n; i ++) {
			System.out.println(array[i][0] + " " + array[i][1]);
		}
		return;
	}
}

태클 감사합니다.
조언 환영입니다.

This post is licensed under CC BY 4.0 by the author.