Blog

짝수는 싫어요

문제 #

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

  • 제한사항

  • 입출력 예

나의 풀이 #

import java.util.Arrays;

class Solution {
    public int[] solution(int n) {
        int[] odd = new int[101]; //n이 1~100일때 홀수는 50개
        int j = 0;
        
				// 홀수일 경우 odd배열에 추가
        for (int i=0; i<=n; i++){
            if(i%2 != 0) {
                odd[j]=i;
                j++;
            }
        }
        
				// 배열의 크기를 변경할 수 없으므로 copy이용
        int[] answer = Arrays.copyOf(odd,j);
        return answer;
    }
}

다른 사람의 풀이 #

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

class Solution {
    public int[] solution(int n) {
        List<Integer> oddList = new ArrayList<>();
        
        for(int i = 1; i<=n; i++) {
            if(i % 2 != 0){
                oddList.add(i);
            }
        }
        
				// int 배열은 toArray를 쓸 수 없기 때문에 반복문을 이용
				// stream을 이용 할 수도 있다.
        int[] answer = new int[oddList.size()];
        for(int i = 0; i<oddList.size(); i++) {
            answer[i] = oddList.get(i);
        }
        
        return answer;
    }
}

for문을 쓰면 list사이즈가 커짐에 따라 시간이 0.0n초 더 걸리지만 메모리를 더 적게 사용한다.

관련개념 학습 #

  • 관련 개념을 찾아서 공부한 내용을 적는다.
  • ctrl + p로 내가 필기한 내용 중에서 관련내용이 있는지 찾아서 그 페이지의 링크를 복사하여 붙혀넣는다.
  • 필기 페이지에도 이 문제의 링크를 복사하여 “관련 문제"라고 써놓고 붙혀넣는다.