본문 바로가기

Java/백준

[JAVA] 백준 10814 나이순 정렬

10814번: 나이순 정렬 (acmicpc.net)

 

10814번: 나이순 정렬

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

www.acmicpc.net

 

풀이 과정 

 

-  String형의 2차원 배열을 생성해 나이와 이름을 입력받음 

- Arrays.sort에 comparator을 재정의하여 나이순으로 오름차순 정렬 

 

정답

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
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));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        int num = Integer.parseInt(br.readLine());
        
        String signup[][] = new String[num][2];
        
        for(int i=0; i<num; i++)
        {
            StringTokenizer st = new StringTokenizer(br.readLine());
            String age = st.nextToken();
            String name = st.nextToken();
            
            signup[i][0] = age;
            signup[i][1] = name;
        }
        
        //나이 순 정렬
        Arrays.sort(signup, new Comparator<String[]>() {
			@Override
			public int compare(String[] s1, String[] s2) {
				return Integer.parseInt(s1[0]) - Integer.parseInt(s2[0]);
			}
			
		});
        
        for(String[] s : signup)
        {
        	bw.write(s[0]+" "+s[1]);
        	bw.write("\n");
        }
        
        bw.flush();
        bw.close();
    }
}

 

'Java > 백준' 카테고리의 다른 글

[JAVA] 백준 28278 스택 2  (0) 2024.02.08
[JAVA] 백준 18870 좌표 압축  (1) 2024.02.07
[JAVA] 백준 1181 단어 정렬  (1) 2024.02.07
[JAVA] 백준 11650 좌표 정렬하기  (1) 2024.02.07
[JAVA] 백준 1427 소트인사이드  (0) 2024.02.07