Notice
Recent Posts
Recent Comments
Link
CodeClover
[JAVA_백준 10814] 나이순 정렬 본문
https://www.acmicpc.net/problem/10814
📌 문제 탐색하기
나이가 오름차순으로 정렬되어야 하고, 나이가 동일한 경우 가입한 순서대로 출력하면 된다.
📌 가능한 시간복잡도
1. 입력받은 데이터를 배열으로 저장해야하고, 나이에 따라서 정렬하기 위해서 Arrays.sort()를 사용해야합니다.
입력받기 => 시간 복잡도 : O(N)
정렬하기 => 시간 복잡도 : O(N logN)
결과적으로... O(N logN) 이라고 생각함.
📌 코드 설계하기
1. 회원 수 N의 값과, 회원 이름 배열을 입력받습니다.
2. 입력 값을 나이 기준으로 오름차순으로 정렬합니다.
3. 나이가 동일한 경우 가입 순서대로 정렬합니다.
📌 정답 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
StringBuilder sb = new StringBuilder();
Member[] members = new Member[n];
for (int i = 0; i < n; i++) {
int age = sc.nextInt();
String name = sc.next();
members[i] = new Member(age, name, i);
}
Arrays.sort(members, (a, b) -> {
if (a.age == b.age) {
return Integer.compare(a.order, b.order);
}
return Integer.compare(a.age, b.age);
});
for (Member member : members) {
sb.append(member.age).append(" ").append(member.name).append("\n");
}
System.out.print(sb);
}
static class Member {
int age;
String name;
int order;
public Member(int age, String name, int order) {
this.age = age;
this.name = name;
this.order = order;
}
}
}
'코딩테스트' 카테고리의 다른 글
[JAVA] 백준 5635_생일 (1) | 2025.01.09 |
---|---|
[JAVA_백준 1181] 단어 정렬 (1) | 2025.01.08 |
[JAVA_백준 2309] 일곱 난쟁이 (0) | 2025.01.06 |
[프로그래머스 / SQL] 잡은 물고기 중 가장 큰 물고기의 길이 구하기 _MYSQL (1) | 2024.12.04 |
[프로그래머스 / SQL] GROUP BY문제 (입양 시각 구하기(1))_oracle (1) | 2024.08.03 |