티스토리 뷰

 

문제는 위와 같으며 데이터를 튜플로 저장하고 기본 sort() 메소드를 통해 나이순을 기준으로 정렬하여 문제를 해결하였습니다.

 

파이썬 코드는 다음과 같습니다.

from sys import stdin

n = int(stdin.readline())
members = []
for i in range(n):
    age, name = stdin.readline().split()
    members.append((int(age), name))  # (나이, 이름) 튜플 타입으로 데이터를 저장

members.sort(key=lambda member: member[0])  # 나이 즉, 저장된 튜플의 0번째 데이터를 기준으로 정렬
for m in members:
    print(m[0], m[1])

 

자바 코드는 다음과 같습니다. 자바의 경우는 HashMap<String, Object> 형태의 데이터를 만들어 리스트로 저장하고 이를 정렬하는 방식을 사용하였습니다.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(br.readLine());
        List<HashMap<String, Object>> members = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            String[] member = br.readLine().split(" ");
            HashMap<String, Object> mm = new HashMap<>();
            mm.put("age", Integer.parseInt(member[0]));
            mm.put("name", member[1]);
            members.add(mm);
        }

        Collections.sort(members, new Comparator<HashMap<String, Object>>() {
            @Override
            public int compare(HashMap<String, Object> o1, HashMap<String, Object> o2) {
                Integer age1 = (Integer) o1.get("age");
                Integer age2 = (Integer) o2.get("age");
                return age1.compareTo(age2);  // 나이를 기준으로 오름차순 정렬
            }
        });

        for (int i = 0; i < members.size(); i++) {
            System.out.println(members.get(i).get("age") + " " + members.get(i).get("name"));
        }
    }
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함