프로그래머스 배열 만들기 1

KIMYEONGJUN·2026년 6월 8일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

정수 n과 k가 주어졌을 때, 1 이상 n이하의 정수 중에서 k의 배수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.

내가 이 문제를 보고 생각해본 부분

solution(int n, int k) 메서드는 주어진 정수 n과 k를 받아 1부터 n까지 중 k의 배수를 모두 배열로 반환하는 기능을 한다.
main 메서드는 Java 애플리케이션의 진입점이며, 여기서 solution 메서드를 호출해 결과를 확인한다.
int count = n / k;
n까지 k의 배수가 몇 개인지 계산하는 부분이다. 예를 들어 n=10, k=3에서 3의 배수는 3, 6, 9 총 3개이므로 10 / 3 = 3이 된다.
int[] answer = new int[count];
k의 배수를 담을 배열을 생성하는 부분이다. 크기는 count로 설정하여 정확한 크기를 미리 확보한다.
for (int i = 0; i < count; i++) { answer[i] = k * (i + 1); }
반복문에서 1배수부터 count배수까지의 값을 배열에 순서대로 저장한다. 배열 인덱스는 0부터 시작하기 때문에 k * (i + 1)로 계산한다.
return answer;
완성된 k의 배수 배열을 반환한다.
Main44 sol = new Main44();
solution 메서드는 인스턴스 메서드라서 객체를 생성한 후 호출한다.
int[] result1 = sol.solution(n1, k1);
첫 번째 테스트 케이스의 결과를 받아온다.
출력 부분은 배열의 각 요소를 콘솔에 쉼표로 구분하여 출력하며, 마지막 요소 뒤에는 쉼표가 나오지 않도록 조건문으로 처리한다.

코드로 구현

class Solution {
    public int[] solution(int n, int k) {
        int count = n / k;
        int[] answer = new int[count];
        for (int i = 0; i < count; i++) {
            answer[i] = k * (i + 1);
        }
        
        return answer;
    }
}

프로그래머스 코드

package programmers;

// 프로그래머스 배열 만들기 1
public class Main44 {
    public int[] solution(int n, int k) {
        int count = n / k;
        int[] answer = new int[count];
        for (int i = 0; i < count; i++) {
            answer[i] = k * (i + 1);
        }
        return answer;
    }

    public static void main(String[] args) {
        Main44 sol = new Main44();

        // 예시 1
        int n1 = 10, k1 = 3;
        int[] result1 = sol.solution(n1, k1);
        System.out.print("[");
        for (int i = 0; i < result1.length; i++) {
            System.out.print(result1[i]);
            if (i != result1.length - 1) System.out.print(", ");
        }
        System.out.println("]");

        // 예시 2
        int n2 = 15, k2 = 5;
        int[] result2 = sol.solution(n2, k2);
        System.out.print("[");
        for (int i = 0; i < result2.length; i++) {
            System.out.print(result2[i]);
            if (i != result2.length - 1) System.out.print(", ");
        }
        System.out.println("]");
    }
}

위에 있는 코드를 변경한 코드

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글