두개의 값을 배열 또는 객체를 이용하여 저장 후 첫번째 값만을 비교하여 정렬하면 된다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.StringTokenizer;
public class BaekJoon10814 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
String[][] users = new String[n][2];
for(int i = 0; i < n; i++) { //2차원 배열로 입력받은 나이와 이름 저장
StringTokenizer st = new StringTokenizer(br.readLine());
users[i][0] = st.nextToken();
users[i][1] = st.nextToken();
}
Arrays.sort(users, (o1, o2) -> {
return Integer.parseInt(o1[0]) - Integer.parseInt(o2[0]); //나이 오름차순 정렬
});
for(int i = 0; i < n; i++) {
bw.write(users[i][0] + " " + users[i][1] + "\n");
}
bw.flush();
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;
public class BaekJoon10814 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine());
User[] users = new User[n]; //User 객체 배열 생성
for(int i = 0; i < n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int age = Integer.parseInt(st.nextToken());
String name = st.nextToken();
users[i] = new User(age, name); //입력받은 정보로 새로운 User 객체를 생성하여 users 배열에 추가
}
Arrays.sort(users, new Comparator<User>() { //User 객체의 나이를 오름차순으로 정렬
@Override
public int compare(User o1, User o2) {
return o1.age - o2.age;
}
});
for(int i = 0; i < n; i++) {
sb.append(users[i]);
}
System.out.print(sb);
}
public static class User {
int age;
String name;
public User(int age, String name) {
this.age = age;
this.name = name;
}
@Override
public String toString() {
return age + " " + name + "\n"; //출력할 양식 미리 작성
}
}
}