문제
회원들의 목록이 주어졌을 때
풀이
위의 과정을 코드로 짜면 된다!
나는 2중배열을 만들 생각을 못해서, 시간이 많이 걸렸다.
소스코드
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
public class Baekjoon_10814 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
String[][] arr = new String[N][2];
for(int i=0;i<N;i++){
arr[i][0] = scan.next();
arr[i][1] = scan.next();
}
Arrays.sort(arr, 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(arr[i][0]+" "+arr[i][1]);
}
}
}
}
수업시간에 정렬을 할때 객체를 생성해서 한 방법도 알아보자.
내 생각으로는 문제를 풀 수 가 없어,
https://st-lab.tistory.com/113 님이 쓴 코드를 보고, 작성하고 이해하는 것을 목표로 했다
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Baekjoon_10814 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
Person[] p = new Person[N];
for(int i=0;i<N;i++)
p[i] = new Person(in.nextInt(), in.next());
Arrays.sort(p, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o1.age - o2.age;
}
});
StringBuilder sb = new StringBuilder();
for(int i=0;i<N;i++)
sb.append(p[i]);
System.out.println(sb);
}
public static class Person{
int age;
String name;
public Person(int age, String name){
this.age = age;
this.name = name;
}
@Override
public String toString() {
return "Person{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
}
}