응애개발자
article thumbnail
728x90

문제

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

 

접근 방법

  1. 회원을 나이순으로 정렬하면 되는 문제입니다.
  2. Compable과 Comparator중 고민을 했었지만 나이순으로 정렬하는 것은 Person을 정렬할때 웬만하면 나이순으로 정렬한다는 것을 생각하여 Comparable을 구현했습니다.
  3. 하지만 정렬기준이 특별하거나, 정렬을 여러 배열에서 해야 한다면 Comparator로 구현할 것입니다.

코드

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

public class Main {
    static class Person implements Comparable<Person>{
        int age;
        String name;

        public Person(int age, String name) {
            this.age = age;
            this.name = name;
        }
        @Override
        public int compareTo(Person o){
            return this.age-o.age;
        }
    }
    private static StringBuilder sb;
    private static BufferedReader br;
    private static StringTokenizer st;
    private static int N;
    private static ArrayList<Person> list = new ArrayList<>();

    //입력
    public static void input() throws Exception {
        br = new BufferedReader(new InputStreamReader(System.in));
        sb = new StringBuilder();

        N = Integer.parseInt(br.readLine());
        for(int i = 0 ; i < N ; i++){
            st = new StringTokenizer(br.readLine());
            int age = Integer.parseInt(st.nextToken());
            String name = st.nextToken();

            list.add(new Person(age,name));
        }
    }

    //실행
    public static void process() {
        //ArrayList로 구현했기 때문에 Collections.sort 했습니다. [] 배열이면 Arrays.sort
        Collections.sort(list);
        for(Person p : list){
            sb.append(p.age).append(" ").append(p.name).append("\n");
        }

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


    public static void main(String[] args) throws Exception {
        input();
        process();
    }
}
profile

응애개발자

@Eungae-D

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!