프로그래머스
프로그래머스 배열 뒤집기 문제풀이
애용이랑떼껄룩
2024. 2. 1. 13:47
728x90

문제 설명
정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.
제한 사항
● 0 ≤ num_list의 원소 ≤ 1,000
● 1 ≤ num_list의 길이 ≤ 1,000
입출력 예
num_list | result |
[1, 2, 3, 4, 5] | [5, 4, 3, 2, 1] |
[1, 1, 1, 1, 1, 2] | [2, 1, 1, 1, 1, 1] |
[1, 0, 1, 1, 1, 3, 5] | [5, 3, 1, 1, 1, 0, 1] |
문제 풀이
public List<Integer> solution1(int[] array) {
List<Integer> list = Arrays.stream(array).boxed().collect(Collectors.toList());
Collections.reverse(list);
return list;
}
stream을 사용하여 array 배열을 List로 변환해주고,
reverse를 사용해 list의 순서를 역순으로 나열해줬다
나는 메소드의 타입을 List로 바꿔서 리턴하여 사용해 문제에 통과하였으나 원래는 int[]로 메소드가 주어져서
잘못된 풀이라고 생각된다.
다른 풀이
public int[] solution2(int[] array) {
List<Integer> list = Arrays.stream(array).boxed().collect(Collectors.toList());
Collections.reverse(list);
return list.stream().mapToInt(Integer::intValue).toArray();
}
나의 풀이와 똑같이 stream을 사용해 list를 역순으로 나열하였으나,
해당풀이는 배열로 변환하여 return 해준다.
return 부분은 stream의 mapToInt를 사용하는데 map을 이용하여 intStream을 가져오고 그 후에 toArray()를 통하여 배열로 변경한다.
mapToInt()에 :: 을 사용하였는데, 람다식으로도 가능하다 ( mapToInt(i- > i) )
태클은 환영!
반응형