본문 바로가기
알고리즘/백준

백준 10814번 - 나이순 정렬 (Java 8)

by latissimus 2022. 3. 4.

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

 

10814번: 나이순 정렬

온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을

www.acmicpc.net

객체 정렬기준 설정

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int numOfCase = Integer.parseInt(br.readLine());
        List<Member> list = new ArrayList<>();
        StringTokenizer st;

        for(int i=0; i<numOfCase; i++){
            st = new StringTokenizer(br.readLine());
            int age = Integer.parseInt(st.nextToken());
            String name = st.nextToken();
            list.add(new Member(age, name));
        }
        Collections.sort(list, (Member member1, Member member2)-> {
            for(int i=0; i<list.size()-1; i++){
                if(member1.age == member2.age){
                    return member1.index - member2.index;
                }
            }
            return member1.age - member2.age;
        });

        StringBuilder sb = new StringBuilder();
        for(int i=0; i<list.size(); i++){
            sb.append(list.get(i).age).append(" ").append(list.get(i).name).append("\n");
        }
        System.out.println(sb);
    }
}
class Member{
    int index = 0;
    int age;
    String name;

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



}

댓글