티스토리 뷰

📌문제 설명

 

📌나의 풀이

import java.util.*;

class Solution {
    public List<Integer> solution(int n, int k) {
       
        List<Integer> arr = new ArrayList<>();

        //1<= k[] <=n k의배수 오름차순
        //k=3, n=10, 3(3*1),6(3*2),9 
        for(int i=1; k*i<=n; i++){ 
            arr.add(k*i);

        }
        return arr;
    }
}

 

📌다른 풀이

class Solution {
    public int[] solution(int n, int k) {
        int count = n / k;


        int[] answer = new int[count];

        for (int i = 1; i <= count; i++) {
            answer[i - 1] = k * i;
        }

        return answer;
    }
}

 

  • 나는 List<Integer>로 리턴 타입을 바꿔 작성했는데, 배열 크기를 미리 계산해서 고정 크기를 주는 방법으로 하면 리턴 타입을 굳이 바꾸지 않아도 됐었다. List는 배열 크기를 신경쓰지 않기 때문에 두번째 풀이가 고정 크기의 배열로 메모리 사용에 더 효율적인 것 같다.
    • 결론 : 메모리와 성능 최적화 관점에서 두번째 풀이가 더 효율적이다. 하지만 가변적 데이터를 처리할 때는 ArrayList가 더 유연하게 사용할 수 있다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함