https://www.acmicpc.net/problem/10814
이건 좀..어려..웠다...
java
package javastd1;
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 bj10814 {
public static void main(String[] args) throws NumberFormatException, IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Member[] m = new Member[n];
StringBuilder sb = new StringBuilder();
//1.나이,이름 입력, m[i]에 입력값 저장
for(int i=0; i<n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int age = Integer.parseInt(st.nextToken());
String name = st.nextToken();
//2.입력한 나이, 이름을 별도 객체로 만들어 저장
m[i] = new Member(age,name);
}
//3.정렬(comparator의 compare메소드 사용)
//compare - 0 또는 정수 중 하나를 반환, 양의 정수일 경우 두 객체 위치를 바꾸는 역할
Arrays.sort(m, new Comparator<Member>() {
public int compare(Member m1, Member m2) {
return m1.age - m2.age;
}
});
//4.member클래스에서 만들어진 n줄 하나로 합치기
for(int i=0; i<n; i++) {
sb.append(m[i]);
}
//5.값 출력
System.out.println(sb);
}
//member클래스
public static class Member{
int age;
String name;
public Member(int age, String name) {
this.age = age;
this.name = name;
}
//나이,이름 사이에 공백 추가, 이름 뒤에 줄바꿈
public String toString() {
return age + " " + name + "\n";
}
}
}
'공부하자 > 알고리즘' 카테고리의 다른 글
[프로그래머스] Lv.1 평균구하기 java (0) | 2022.04.14 |
---|---|
[프로그래머스] Lv.1 짝수와 홀수 java, c (0) | 2022.04.14 |
[백준] 11650번 좌표 정렬하기 java (0) | 2022.04.13 |
[백준] 2750번 수 정렬하기 java (0) | 2022.04.13 |
[백준] 11651번 좌표 정렬하기2 java (0) | 2022.04.13 |