본문 바로가기
코딩테스트/프로그래머스 기초

[코딩테스트 Lv.0] n개 간격의 원소들

by 블루데이제이 2025. 3. 7.
728x90
반응형
문제 설명

정수 리스트 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]입니다.

내 풀이
Java
import java.util.*;
class Solution {
    public int[] solution(int[] num_list, int n) {
        int[] answer = {};
        List<Integer> list = new ArrayList<>();
        for(int i = 0; i < num_list.length; i += n){
            list.add(num_list[i]);
        }
        answer = new int[list.size()];
        for(int i = 0; i < list.size(); i++){
            answer[i] = (int)list.get(i);
        }
        return answer;
    }
}
C
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// num_list_len은 배열 num_list의 길이입니다.
int* solution(int num_list[], size_t num_list_len, int n) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    int* answer = (int*)malloc(sizeof(int) * num_list_len / n + 1);
    int i, k;
    for(i = 0, k = 0; i < num_list_len; i += n){
        answer[k++] = num_list[i];
    }    
    return answer;
}
Python
def solution(num_list, n):    
    answer = [num_list[i] for i in range(0, len(num_list), n)]        
    return answer

https://school.programmers.co.kr/learn/courses/30/lessons/181888

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

728x90
반응형