주니어 기초 코딩공부/JAVA_programmers_코딩테스트

짝수는 싫어요_programmers_lev00

jju_developer 2022. 12. 1. 18:57
728x90

<코딩 테스트>

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

 

<나의 풀이 과정>

우선, 주어지는 매개 변수 n 을 담을 배열을 선언후 배열의 길이는 주어지는 매개변수 값의 홀수 자리수 만큼을 선언하였습니다.

그후 for문을 통해서 홀수일때 배열의 자리에 차곡 차곡 쌓일 수 있도록 코딩했습니다.

 

<나의 풀이 코드>


class Solution {
    public int[] solution(int n) {
        int[] answer = new int[(n+1)/2];

        for(int i =1; i<=n; i++) {
            if(i%2==1) {
                answer[i/2]=i;
            }
        }
        return answer;
    }
}

 

<다른사람 풀이 1>

import java.util.stream.IntStream;

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

<다른사람 풀이 2>

import java.util.List;
import java.util.ArrayList;

class Solution {
    public int[] solution(int n) {
        List<Integer> answer = new ArrayList<>();
        for(int i=1; i<=n; i++){
            if(i % 2 == 1){
                answer.add(i);
            }
        }
        return answer.stream().mapToInt(x -> x).toArray();
    }
}

<다른사람 풀이 3>

class Solution {
    public int[] solution(int n) {
        int cnt = 0;

        if(n % 2 == 0) cnt = n/2;
        else cnt = n/2 + 1;

        int[] result = new int[cnt];
        int num = 1;

        for(int i=0; i<result.length; i++){
            result[i] = num;
            num = num + 2;
        }
        return result;
    }
}

 

728x90