문제
풀이
방법이 다양할 것 같아서 고민을 하다가 클래스를 사용하기로 했다.
방법
1. String[][] 사용해서 Arrays.sort , Comarator 사용
2. Calss에 변수 2개 넣어서 Arrays.sort 확장하여 정렬
3. StringBuilder를 배열처럼 사용하여 Counting sort 형태로 사용
코드
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
int N = sc.nextInt();
Person[] p = new Person[N];
for(int i=0; i<N; i++) {
p[i] = new Person(sc.nextInt(), sc.next());
}
//나이 오름차순 정렬. 같으면 순서가 앞인 쪽이 먼저
Arrays.sort(p, new Comparator<Person>() {
@Override
public int compare(Main.Person o1, Main.Person o2) {
return o1.age - o2.age;
}
});
for(int i=0; i<N; i++) {
//객체배열의 객체를 출력하면 toString()이 출력됨
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;
}
public String toString() {
return age + " " + name + "\n";
}
}
}
'PS(Java) > 백준' 카테고리의 다른 글
[PS] 백준 10989번 수 정렬하기 3 (0) | 2022.05.21 |
---|---|
[PS] 백준 10825번 국영수 (0) | 2022.05.20 |
[PS] 백준 11650번 좌표 정렬하기(Comparable과 Comparator) (0) | 2022.05.18 |
[PS] 백준 2751번 수 정렬하기 2 (0) | 2022.05.17 |
[PS] 백준 2579번 계단 오르기 (0) | 2022.03.31 |