본문 바로가기
JAVA/Programmers

JAVA 프로그래머스 [짝수는 싫어요] 자바 Lv.0

by tripleup 2023. 5. 24.
728x90
반응형

[프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 짝수는 싫어요

https://school.programmers.co.kr/learn/courses/30/lessons/120813


해결 과정

 

if (n % 2 == 0) {
        int[] arr = new int[n/2];
} else {
        int[] arr = new int[n/2+1];
}

 

이렇게 하면 런타임 오류가 발생한다. 

하지만 다음과 같이 실행하면 오류가 발생하지 않는다

 

int[] arr;
if (n % 2 == 0) {
         arr = new int[n/2];
} else {
          arr = new int[n/2+1];
}

이유는 무엇일까? 암튼 그렇게 배열 arr의 길이를 정해준 후,

인덱스를 위해 int k = 0 초기화해주고

 

반복문을 돌면서 홀수가 되는 조건에 만족하면,

arr[k]에 넣어주면서 k++해주면 인덱스를 하나씩 크게 해주면 된다.

 

소스 코드

 

class Solution {
    public int[] solution(int n) {
        
        int[] arr;
   
        if (n % 2 == 0) {
            arr = new int[n/2];
        } else {
            arr = new int[n/2+1];
        }
        
        int k = 0;
        
        for (int i = 0; i<=n; i++) {
            if (i % 2 == 1) {
                arr[k] = i;
                k++;
            }    
        }
        
        return arr;
    }
}

 


 

728x90
반응형

댓글