TigerDemon

4주차_배열 자르기 본문

2023-SWLUG/2023sv

4주차_배열 자르기

호랑2D 2023. 8. 6. 19:31

<문제>

문제설명

: 정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.

 

제한사항

: 2 ≤ numbers의 길이 ≤ 30

 0 ≤ numbers의 원소 ≤ 1,000

 0 ≤num1 < num2 < numbers의 길이

입출력 예

numbers  num1 num2 result
[1, 2, 3, 4, 5] 1 3 [2, 3, 4]
[1, 3, 5] 1 2 [3, 5]

입출력 예 설명

설명 #1 : [1, 2, 3, 4, 5]의 1번째 인덱스 2부터 3번째 인덱스 4 까지 자른 [2, 3, 4]를 return 합니다.

설명 #2 : [1, 3, 5]의 1번째 인덱스 3부터 2번째 인덱스 5까지 자른 [3, 5]를 return 합니다.

 

<풀이>

풀이 & 설명

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// numbers_len은 배열 numbers의 길이입니다.
int* solution(int numbers[], size_t numbers_len, int num1, int num2) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    int* answer = (int*)malloc(numbers_len * sizeof(int));
    
    // numbers 배열에서 num1번째 인덱스부터 num2번째 인덱스까지의 원소를 잘라서 answer 배열에 저장합니다.
    for (size_t i = num1; i <= num2; i++) {
        // answer 배열의 인덱스는 0부터 시작하므로, i - num1을 사용하여 적절한 인덱스로 매핑합니다.
        answer[i - num1] = numbers[i];
    }

    // 자른 배열의 주소를 반환합니다.
    return answer;
}

<결과>

'2023-SWLUG > 2023sv' 카테고리의 다른 글

5주차_양꼬치  (0) 2023.08.06
5주차_편지  (0) 2023.08.06
4주차_배열 뒤집기  (0) 2023.08.06
4주차_배열의 평균  (0) 2023.07.31
3주차_짝수의 합  (0) 2023.07.22