프로그래머스코딩테스트연습풀이/C언어
[프로그래머스/C언어] 배열 만들기 3
코코쵸마
2023. 8. 5. 20:35
문제
정수 배열 arr와 2개의 구간이 담긴 배열 intervals가 주어집니다.
intervals는 항상 [[a1, b1], [a2, b2]]의 꼴로 주어지며 각 구간은 닫힌 구간입니다. 닫힌 구간은 양 끝값과 그 사이의 값을 모두 포함하는 구간을 의미합니다.
이때 배열 arr의 첫 번째 구간에 해당하는 배열과 두 번째 구간에 해당하는 배열을 앞뒤로 붙여 새로운 배열을 만들어 return 하는 solution 함수를 완성해 주세요.
솔루션
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// arr_len은 배열 arr의 길이입니다.
// intervals_rows는 2차원 배열 intervals의 행 길이, intervals_cols는 2차원 배열 intervals의 열 길이입니다.
int* solution(int arr[], size_t arr_len, int** intervals, size_t intervals_rows, size_t intervals_cols) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
int* answer = (int*)malloc(arr_len * sizeof(int));
int n = 0;
//printf("%d %d", intervals[0][0], intervals[0][1]);
for(int i = intervals[0][0]; i <= intervals[0][1]; i++)
answer[n++] = arr[i];
for(int j = intervals[1][0]; j <= intervals[1][1]; j++)
answer[n++] = arr[j];
answer[n] = '\0';
return answer;
}
오류인건지 test하려고 써놓은 printf를 지우면 코드실행에서 에러가 뜬다 근데 체점하면 또 맞다그러고
printf지우고 실행하면 문제없이 실행이 된다.. 이해할 수 없군
https://school.programmers.co.kr/learn/courses/30/lessons/181895
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr