코딩기록 저장소 🐕/코테

프로그래머스 Java짝수는 싫어요(어려웠음)

kimkongmom 2024. 1. 19. 18:01

 

 

 

 

 

문제 설명
정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.

제한사항
1 ≤ n ≤ 100

 

 

 

풀이

for문을 사용해야한다는것만 떠오르고 다음이 떠오르지않아 애먹었던 문제입니다.

stream을 사용하면 더욱 간결하고 쉬운코드로 작성이가능합니다.

answer 배열을 초기화하고 짝수와 홀수를 구분하기 위해서  size변수를 사용해줍니다.

n이짝수일때와 홀수일때를 고려해 삼항연산자로 작성합니다.

홀수 값을 계산하고 배열에 할당합니다. 

 

class Solution {
    public int[] solution(int n) {
       int size = (n % 2 == 0) ? (n / 2) : (n / 2 + 1);      
       int[] answer = new int[size];        
        for (int i = 0; i < size; i++) {
        answer[i] = 2 * i + 1;
    }

        return answer;
    }
}

 

 

 

stream을 사용할 경우

import java.util.stream.IntStream;

class Solution {
    public int[] solution(int n) {
        return IntStream.rangeClosed(1, n)
                        .filter(x -> x % 2 != 0)
                        .toArray();
    }