백준 10814번: 나이순 정렬
두개의 값을 배열 또는 객체를 이용하여 저장 후 첫번째 값만을 비교하여 정렬하면 된다.
자바를 이용한 풀이 1. 2차원 배열
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();
}
}
자바를 이용한 풀이 2. 객체 배열
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"; //출력할 양식 미리 작성
}
}
}
(참고: https://st-lab.tistory.com/113)
Author And Source
이 문제에 관하여(백준 10814번: 나이순 정렬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@keithekey/백준-10814번-나이순-정렬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)