본문 바로가기

ALGORITHM

백준 10814 나이순 정렬 (Java)

1. 문제 링크

 

10814번: 나이순 정렬

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

www.acmicpc.net

 

2. 문제 및 입출력예제

 

3. 문제 풀이

Member 객체를 사용하는데 Comparable을 상속받아서 나이 기준으로 비교한다.

Arrays.sort()로 배열을 정렬하고 그대로 출력하면 된다.

 

4. 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;

public class Main {
	static class Member implements Comparable<Member>{
		int age;
		String name;
		public Member(int age, String name) {
			super();
			this.age = age;
			this.name = name;
		}
		@Override
		public int compareTo(Member o) {
			return this.age-o.age;
		}
		@Override
		public String toString() {
			return "" + age + " " + name+"\n";
		}
	}
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		int N = Integer.parseInt(br.readLine());
		Member[] member = new Member[N];
		for(int i=0;i<N;i++) {
			String[] split = br.readLine().split(" ");
			member[i] = new Member(Integer.parseInt(split[0]), split[1]);
		}
		Arrays.sort(member);
		for(Member m: member) {
			sb.append(m);
		}
		
		System.out.println(sb);		
	}	
}

 

'ALGORITHM' 카테고리의 다른 글

백준 14502 연구소 (Java)  (0) 2023.04.21
백준 20055 컨베이어 벨트 위의 로봇 (Java)  (0) 2023.04.20
백준 10773 제로 (Java)  (0) 2023.04.19
백준 14719 빗물 (Java)  (0) 2023.04.19
백준 2636, 2638 치즈 (Java)  (0) 2023.04.18