문제
내가 작성한 정답
import java.util.*;
class Solution {
public int[] solution(int[] num_list) {
int[] answer = new int[5];
Arrays.sort(num_list);
for(int i=0; i<5; i++){
answer[i] = num_list[i];
}
return answer;
}
}
import java.util.*;
class Solution {
public int[] solution(int[] num_list) {
return Arrays.stream(num_list)
.sorted()
.limit(5)
.toArray();
}
}
다른 사람들의 정답
import java.util.Arrays;
class Solution {
public int[] solution(int[] num_list) {
Arrays.sort(num_list);
// 배열의 특정 범위를 복사하여 새로운 배열을 생성
return Arrays.copyOfRange(num_list, 0, 5);
}
}
copyOfRange 메서드: 배열의 특정 범위를 복사하여 새로운 배열을 생성하는 메서드
copyOfRange(int[] original(복사할 배열), int from(시작 인덱스로 포함), int to(종료 인덱스로 포함x))
내림차순 정렬
import java.util.Arrays;
import java.util.Comparator;
Arrays.sort(numbers, Comparator.reverseOrder());
사용자 객체 정렬
: Comparator를 구현
import java.util.Arrays;
import java.util.Comparator;
class Person {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return name + ": " + age;
}
}
public class Main {
public static void main(String[] args) {
Person[] people = {
new Person("Alice", 30),
new Person("Bob", 25),
new Person("Charlie", 35)
};
// 나이 기준으로 정렬
Arrays.sort(people, new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
return Integer.compare(p1.age, p2.age);
}
});
// 정렬된 배열 출력
System.out.println(Arrays.toString(people));
// 출력: [Bob: 25, Alice: 30, Charlie: 35]
}
}
Share article