프로그래머스/Lv. 0(코딩 기초 트레이닝)

[프로그래머스 코딩테스트] n개 간격의 원소들(Java)

Sigfriede 2023. 5. 8. 01:00

  문제 설명

  정수 리스트 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]
class Solution {
    public int[] solution(int[] num_list, int n) {
        int[] answer;
        if (num_list.length % n == 0) {
            answer = new int[num_list.length / n];
        } else {
            answer = new int[num_list.length / n + 1];
        }
        
        int index = 0;
        for (int i = 0; i < num_list.length; i += n) {
            answer[index++] = num_list[i];
        }
        return answer;
    }
}

  answer 배열을 생성합니다. 만약 num_list의 길이를 나눈 나머지가 0이라면, 즉 수가 맞아 떨어진다면 배열의 크기를 num_list를 n으로 나눈 값으로 지정합니다. 그렇지 않다면 배열의 크기를 num_list를 n으로 나눈 값에 1을 더합니다.

  배열의 위치가 될 index 변수를 생성합니다. for문이 num_list의 길이만큼 순회하며 i의 값이 n씩 증가합니다. answer의 index번째 위치에 num_list의 i번째 원소를 할당합니다. index가 1씩 증가하며 조건에 해당하는 num_list의 원소가 차례로 채워집니다.