본문 바로가기
[ 다먹살 ]/- Coding

[백준] 10814 나이순정렬

by 엉망으로살기 2021. 10. 12.
반응형

https://www.acmicpc.net/submit/10814/34317157

 

로그인

 

www.acmicpc.net

 

이 문제는 예전에 풀었던 좌표 정렬하기(https://yoloaeee.tistory.com/125)와 똑같은 문제라고 봐도 무방할 것 같다. 입력값과 정렬해야 되는 데이터 종류 개수만 달라졌을 뿐이다.


문제 및 입출력

 


코드

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;

public class Main
{
     // 회원정보 클래스
     static class member
     {
         int index;
         int age;
        String name;

         member(int index, int age, String name)
         {
             this.index = index;
             this.age = age;
            this.name = name;
     }
}

    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        ArrayList<member> list = new ArrayList<member>();
        int n = sc.nextInt();
        
        for(int i=0; i<n; i++)
        {
         // 입력받는 좌표데이터를 리스트에 add
         list.add(new member((i+1), sc.nextInt(), sc.next()));
        }
        
        // 정렬 실행
        Collections.sort(list, new Comparator<member>()
        {
             @Override
             public int compare(member o1, member o2)
             {
                  // 나이 오름차순으로 정렬
                  if(o1.age!=o2.age)
                  {
                       return o1.age>o2.age?1:-1;
                  }
                  // 나이가 같으면 인덱스(가입한 순서)로 정렬
                  else
                  {
                       return o1.index>o2.index?1:-1;
                  }
             }
        });
        
        for(member data : list)
        {
         System.out.println(data.age + " " + data.name);
        }
    }
}

 

반응형

'[ 다먹살 ] > - Coding' 카테고리의 다른 글

[백준] 10828 스택  (0) 2021.10.14
[백준] 10773 제로  (3) 2021.10.13
[백준] 15652 N과 M(4)  (0) 2021.10.08
[백준] 15651 N과 M(3)  (0) 2021.10.08
[백준] 15650 N과 M(2)  (0) 2021.10.08

댓글