목차
문제 설명
정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요
사용한 기술 설명
1. import java.util.Collections;
- java.util.Collections 클래스는 Java Collections Framework의 유틸리티 클래스입니다. 이 클래스는 컬렉션을 조작하는 정적 메서드를 제공합니다.
- reverse(List<?> list) 메서드는 주어진 리스트의 요소들을 역순으로 만듭니다.
2. import java.util.List;
- java.util.List 인터페이스는 컬렉션 프레임워크의 일부로, 순서가 있는 요소의 목록을 나타냅니다. 중복 요소를 허용하며, 요소에 접근할 때 인덱스를 사용합니다.
- 예: List<Integer>는 Integer 객체의 리스트를 나타냅니다.
3. import java.util.Arrays;
- java.util.Arrays 클래스는 배열을 조작하기 위한 다양한 유틸리티 메서드를 포함합니다.
- stream(int[] array) 메서드는 주어진 배열을 원소로 하는 스트림을 반환합니다.
4. import java.util.stream.Collectors;
- java.util.stream.Collectors 클래스는 스트림을 수집하기 위한 다양한 유틸리티 메서드를 제공합니다.
- toList() 메서드는 스트림의 요소들을 리스트로 수집합니다.
5. Arrays.stream(num_list)
- 설명: num_list 배열을 스트림으로 변환합니다. stream(int[] array)는 IntStream을 반환합니다.
6. boxed()
- 설명: 기본형 스트림 (예: IntStream)을 객체형 스트림 (예: Stream<Integer>)으로 변환합니다. 여기서는 IntStream을 Stream<Integer>로 변환합니다.
7. collect(Collectors.toList())
- 설명: 스트림의 요소들을 수집하여 리스트로 변환합니다. Collectors.toList()는 Stream의 요소를 리스트로 수집하는 데 사용됩니다.
8. Collections.reverse(list)
- 설명: 주어진 리스트 list의 요소들을 역순으로 배치합니다. 이 메서드는 리스트 자체를 변경합니다.
9. list.stream()
- 설명: 리스트를 스트림으로 변환합니다. List의 메서드로, 리스트의 요소들을 스트림으로 반환합니다.
10. mapToInt(Integer::intValue)
- 설명: 스트림의 각 요소를 int로 변환합니다. Integer::intValue는 Integer 객체의 값을 기본형 int로 변환하는 메서드 참조입니다.
11. toArray()
- 설명: 스트림의 요소들을 배열로 변환합니다. IntStream에서 호출되며, int[] 배열을 반환합니다.
전체 흐름 설명
- 배열을 스트림으로 변환: Arrays.stream(num_list)는 num_list 배열을 스트림으로 변환합니다.
- 스트림을 객체형으로 변환: boxed()를 사용하여 IntStream을 Stream<Integer>로 변환합니다.
- 스트림을 리스트로 변환: collect(Collectors.toList())를 사용하여 스트림을 리스트로 수집합니다.
- 리스트를 역순으로 정렬: Collections.reverse(list)를 사용하여 리스트를 역순으로 정렬합니다.
- 리스트를 스트림으로 변환: list.stream()를 사용하여 리스트를 스트림으로 변환합니다.
- 스트림의 요소들을 기본형으로 변환: mapToInt(Integer::intValue)를 사용하여 Stream<Integer>의 요소들을 IntStream으로 변환합니다.
- 스트림을 배열로 변환: toArray()를 사용하여 IntStream을 int[] 배열로 변환합니다.
이렇게 해서 주어진 배열을 리스트로 변환하고, 역순으로 정렬한 다음, 다시 배열로 변환하는 작업을 수행합니다.
import java.util.Collections;
import java.util.List;
import java.util.Arrays;
import java.util.stream.Collectors;
class Solution {
public int[] solution(int[] num_list) {
// int[]를 List<Integer>로 변환
List<Integer> list = Arrays.stream(num_list)
.boxed()
.collect(Collectors.toList());
// List를 역순으로 정렬
Collections.reverse(list);
// List<Integer>를 다시 int[]로 변환
return list.stream()
.mapToInt(Integer::intValue)
.toArray();
}
}
'JAVA > 프로그래머스 코딩테스트 입문' 카테고리의 다른 글
[프로그래머스, 입문] 머쓱이보다 키 큰 사람 (0) | 2024.06.14 |
---|---|
[프로그래머스, 입문] 중복된 숫자 개수 (0) | 2024.06.14 |
[프로그래머스, 입문] 아이스 아메리카노 (0) | 2024.06.14 |
[프로그래머스, 입문] 옷가게 할인 받기 (1) | 2024.06.14 |
[프로그래머스, 입문] 피자 나눠 먹기 (3) (0) | 2024.06.14 |