[백준 10814번 : 나이순 정렬] java 풀이

Elmo·2022년 7월 27일
0

[백준] 알고리즘

목록 보기
15/39

이 문제는 생성자로 객체 배열을 생성하여 Arrays.sort로 풀어낸다.

  • Main 클래스는 나이(age), 이름(name)의 멤버 필드를 갖는다.
  • 생성자를 호출해서 Main 타입의 객체 배열에 사용자 정보를 담는다.
  • 나이순으로 정렬하도록 Arrays.sortcompare 메소드를 다시 작성한다. 이 때, 나이가 같을 경우는 먼저 가입한 순서이므로 그냥 그대로 둔다.

🔑 java 풀이

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 {
	int age;
	String name;
	public Main(int age, String name) {
		this.age=age;
		this.name=name;
	}
	
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());
		Main list[] = new Main[N];
		for(int i=0; i<N; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine()," ");
			list[i]=new Main(Integer.parseInt(st.nextToken()),st.nextToken());
		}
		
		Arrays.sort(list,new Comparator<Main>() {

			@Override
			public int compare(Main o1, Main o2) {
				return o1.age-o2.age;
			}
			
		});
		
		for(int i=0; i<N; i++) 
			System.out.println(list[i].age+" "+list[i].name);
		
		br.close();		
	}
 }

profile
엘모는 즐거워

0개의 댓글