[ 문제 설명 ]
정수로 이루어진 리스트 num_list가 주어집니다. num_list에서 가장 작은 5개의 수를 제외한 수들을 오름차순으로 담은 리스트를 return 하도록 solution 함수를 완성해주세요.
[ 제한 사항 ]
- 6 < = num_list 의 길이 < = 30
- 1 < = num_list 의 원소 < = 100
[ 입출력 예 ]
[ 문제 풀이 1]
1. Arrays.sort() 메서드로 num_list 를 오름차순 정렬해준다.
2. 결과로 return 할 result int 배열의 크기를 num_list -5 크기로 선언해준다.
--> 이때, result 배열은 주어지는 num_list의 가장 작은 수 5개를 제외하고 남은 값들을 넣으므로 num_list의 크기보다 5 작은 크기의 배열이 될 것이다.
3. 정렬 및 결과 값 담을 배열 크기 선언 후, for문을 돌려 배열 result 에 값들을 담아준다.
--> num_list의 index=5부터 담는 이유
: num_list를 sort() 메서드를 사용하여 오름차순으로 정렬을 해서 지금 num_list 배열은 작은 값부터 순서대로 담겨있다. 거기서 가장 작은 5개의 수를 제외한 수를 차례대로 result 배열에 담아야 하는데, 가장 작은 5개 수를 제외한 그 다음 값은 index=5 위치에 있기 때문에 index=5 부터 차례로 값을 담는 것이다. 또한 result 배열에는 index=0 처음부터 값이 담겨야하므로 i -5 를 해준것이다.
4. result 배열을 반환한다.
[ 문제 풀이 2_stream( )]
1. Arrays.stream() 메서드에 num_list 를 넣어주고 sorted() 메서드로 오름차순 정렬해준다.
--> Arrays.stream(num_list).sorted()
2. 여기서 skip( ) 메서드를 사용하여 배열의 일부만 보여준다.
-> skip(5) 를 해줌으로써 정렬된 num_list 배열의 6번째 이후의 데이터 즉, index=5 에 위치한 값부터 보이게 하는 것이다.
3. 마지막으로 toArray() 메서드를 사용하여 앞선 데이터 값들을 배열로 만든다.
-> 정렬된 num_list 배열의 index=5번 즉, 6번째 데이터 값들부터 가져와 배열로 만든다.
* 매개변수가 없는 toArray() 메서드 -> Object 타입의 배열을 반환
'Algorithm > Programmers' 카테고리의 다른 글
Lv.0 - 원소들의 곱과 합 (0) | 2024.08.13 |
---|---|
Lv.0 배열에서 문자열 대소문자 변환하기 (0) | 2023.11.03 |
Lv.0 양꼬치 (0) | 2023.01.01 |
Lv.0 배열의 평균값 (0) | 2023.01.01 |
Lv.0 짝수의 합 (0) | 2023.01.01 |