[백준] 10814번: 나이순 정렬 자바

이다혜·2024년 2월 6일
0

백준

목록 보기
18/29

📎 문제 출처


https://www.acmicpc.net/problem/10814

📌 문제 설명


❓ 풀이 방법


사람들의 나이와 이름, 가입 순서 정보를 갖는 Member 클래스를 생성했다.
Member의 나이 순으로 정렬하고 나이가 같을 경우 먼저 가입한 사람 순으로 정렬한다.

📌 Code


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 Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        int n = Integer.parseInt(br.readLine());

        Member[] members = new Member[n];
        for (int i = 0; i < n; i++) {
            st = new StringTokenizer(br.readLine());
            members[i] = new Member(Integer.parseInt(st.nextToken()), st.nextToken(), i);
        }

        Arrays.sort(members, new Comparator<Member>() {
            @Override
            public int compare(Member o1, Member o2) {
                if(o1.age == o2.age) {
                    return o1.order - o2.order;
                }
                return o1.age - o2.age;
            }
        });

        StringBuilder sb = new StringBuilder();
        for(Member member : members) {
            sb.append(member.age + " " + member.name + "\n");
        }

        System.out.println(sb.toString());
    }

}

class Member {
    int age;
    String name;
    int order;

    public Member(int age, String name, int order) {
        this.age = age;
        this.name = name;
        this.order = order;
    }
}

0개의 댓글