프로그래머스 n 번째 원소까지

KIMYEONGJUN·2026년 6월 19일
post-thumbnail

문제

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

정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 n 번째 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.

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

Main56 클래스 내부에 solution 메서드를 구현하였다.
이 메서드는 주어진 배열 num_list에서 앞에서부터 n번째 원소까지 새 배열에 복사하여 반환한다.
main 메서드에서는 먼저 Main56 객체를 생성하여 메서드를 사용할 준비를 한다.
두 개의 서로 다른 입력 배열과 n값을 각각 준비하여 solution 메서드를 두 번 호출한다.
호출 결과로 반환된 배열을 printArray 메서드로 출력한다.
printArray 메서드는 배열을 대괄호 포함, 쉼표로 구분된 형태로 출력하도록 작성되어 있다.
이 구조 덕분에 두 개의 입출력 예가 연속으로 콘솔에 출력되어 비교와 확인이 가능하다.

코드로 구현

class Solution {
    public int[] solution(int[] num_list, int n) {
        int[] answer = new int[n]; 
        for (int i = 0; i < n; i++) {
            answer[i] = num_list[i];
        }
        return answer;
    }
}

프로그래머스 코드

package programmers;

// 프로그래머스 n 번째 원소까지
public class Main56 {
    public static void main(String[] args) {
        Main56 sol = new Main56();

        int[] num_list1 = {2, 1, 6};
        int n1 = 1;
        int[] result1 = sol.solution(num_list1, n1);
        printArray(result1);

        int[] num_list2 = {5, 2, 1, 7, 5};
        int n2 = 3;
        int[] result2 = sol.solution(num_list2, n2);
        printArray(result2);
    }

    public int[] solution(int[] num_list, int n) {
        int[] answer = new int[n];
        for (int i = 0; i < n; i++) {
            answer[i] = num_list[i];
        }
        return answer;
    }

    private static void printArray(int[] arr) {
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]);
            if (i != arr.length - 1) System.out.print(", ");
        }
        System.out.println("]");
    }
}

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

마무리

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

profile
Junior backend developer

0개의 댓글