코딩테스트/프로그래머스 | Lv. 0

[프로그래머스 | JAVA] n개 간격의 원소들

리키권 2024. 12. 2. 22:03

문제 설명

정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 마지막 원소까지 n개 간격으로 저장되어있는 원소들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.=

제한사항

5 ≤ num_list의 길이 ≤ 20
1 ≤ num_list의 원소 ≤ 9
1 ≤ n ≤ 4

입출력 예

num_list n result
[4, 2, 6, 1, 7, 6] 2 [4, 6, 7]
[4, 2, 6, 1, 7, 6] 4 [4, 7]


입출력 예 설명

- 입출력 예 #1
[4, 2, 6, 1, 7, 6]에서 2개 간격으로 저장되어 있는 원소들은 [4, 6, 7]입니다.
- 입출력 예 #2
[4, 2, 6, 1, 7, 6]에서 4개 간격으로 저장되어 있는 원소들은 [4, 7]입니다.

 

제출 코드 및 설명

class Solution {
   public int[] solution(int[] num_list, int n) {
       // 결과 배열에 값을 채울 때 사용할 인덱스 카운터
       int allocateArrCnt = 0;

       // n 간격으로 값을 추출할 때 필요한 배열 크기 계산
       // num_list의 길이를 n으로 나누고 올림 처리하여 필요한 정확한 크기 계산
       int resultArrSize = (int) Math.ceil((double) num_list.length / n);

       // 결과값을 저장할 배열 생성
       int[] resultArray = new int[resultArrSize];

       // num_list 배열을 순회하면서 n 간격으로 값 추출
       for (int i=0; i<num_list.length; i++) {
           // i가 0이거나 n의 배수일 때 해당 값을 결과 배열에 저장
           if (i == 0 || i % n == 0) {
               resultArray[allocateArrCnt] = num_list[i];
               allocateArrCnt++;
           }
       }
       
       return resultArray;
   }
}