프로그래머스
프로그래머스 짝수는 싫어요 문제풀이
애용이랑떼껄룩
2024. 1. 26. 15:44
728x90

문제 설명
정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return 하도록 solution 함수를 완성해 주세요.
제한 사항
● 1 ≤ n ≤ 100
입출력
n | result |
10 | [1, 3, 5, 7, 9] |
15 | [1, 3, 5, 7, 9, 11, 13, 15] |
문제 풀이
public static List<Integer> solution1(int n) {
int[] array = new int[n];
List<Integer> list = new ArrayList<>();
for (int i = 0; i <= array.length; i++) {
list.add(i);
}
list.stream()
.filter(item -> item % 2 == 0)
.collect(Collectors.toList())
.forEach(re -> { list.remove(re); });
return list;
}
요새 stream을 활용해 보려고 해당 문제도 stream을 사용하여 풀이하였다.
array길이는 n의 개수만큼 설정하고
list에는 array길이만큼 값을 집어넣은 후,
stream을 통하여 2의 배수를 필터링하고 필터링된 나머지값은 forEach를 통하여 삭제해 줌
다른 풀이
public int[] solution2(int n) {
return IntStream.rangeClosed(0, n).filter(value -> value % 2 == 1).toArray();
}
나는 stream을 활용했지만 IntStream까지는 떠올리지 못하였다..ㅠ
rangeClose는 0~n까지 동작을 하게 해 주며 filter를 통하여 홀수들만 Array로 변경해 주어 반환한다
매우 간단하게 잘 짜신 것 같다...
태클은 환영!
반응형