n = int(input())
members = []
sequence = 1
for _ in range(n):
age, name = input().split()
members.append([int(age), name, sequence])
sequence += 1
members.sort(key = lambda m : (m[0], m[2]))
for i in members:
print(str(i[0]) + " " + str(i[1]))
JAVA
- sc.next() : 입력 스트림에서 공백을 기준으로 하나의 단어를 읽어옴
- Arrays.sort() : 안정 정렬 특성을 가짐 -> 정렬 기준이 같은 값들에 대해 기존 순서를 유지하는 정렬 즉, 입력받은 순서대로 유지
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][2];
for(int i = 0; i < N; i++) {
arr[i][0] = in.next(); // 나이
arr[i][1] = in.next(); // 이름
}
Arrays.sort(arr, new Comparator<String[]>() {
// 나이순으로 정렬
@Override
public int compare(String[] s1, String[] s2) {
return Integer.parseInt(s1[0]) - Integer.parseInt(s2[0]);
}
});
for(int i = 0; i < N; i++) {
System.out.println(arr[i][0] + " " + arr[i][1]);
}
}
}
'Algorithm' 카테고리의 다른 글
파이썬 알고리즘 연습(1) (0) | 2025.01.14 |
---|---|
자바 알고리즘 연습(8) (0) | 2025.01.13 |
자바 알고리즘 연습(7) (2) | 2025.01.11 |
2108 통계학 / 정렬 / 딕셔너리 (0) | 2025.01.11 |
2751 수 정렬하기 2 / 정렬 / 배열.sort(), 자바 Arrays.sort(배열) (0) | 2025.01.11 |