
내가 생각했을때 문제에서 원하는부분
정수 리스트 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("]");
}
}
위에 있는 코드를 변경한 코드
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.