반응형
#문제5 주어진 배열의 순서를 뒤집으려고 합니다.
예를 들어 주어진 배열이 [1, 4, 2, 3]이면, 순서를 뒤집은 배열은 [3, 2, 4, 1]입니다.
정수가 들어있는 배열 arr와 arr의 길이 arr_len이 매개변수로 주어졌을 때, arr를 뒤집어서 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.
매개변수 설명
정수가 들어있는 배열 arr와 arr의 길이 arr_len이 solution 함수의 매개변수로 주어집니다.
- arr_len은 1 이상 100 이하의 자연수입니다.
- arr의 원소는 -100 이상 100 이하의 정수입니다.
return 값 설명
배열 arr의 순서를 뒤집어서 return 해주세요.
예시
arr arr_len return
[1, 4, 2, 3] | 4 | [3, 2, 4, 1] |
예시 설명
[1, 4, 2, 3]을 뒤에서부터 읽으면 3, 2, 4, 1입니다. 따라서 [1, 4, 2, 3]의 순서를 뒤집은 결과는 [3, 2, 4, 1]이 됩니다.
문제
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int* solution(int arr[], int arr_len) {
int left = 0;
int right = arr_len - 1;
while(@@@){
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left += 1;
right -= 1;
}
return arr;
}
// The following is main function to output testcase.
int main() {
int arr[4] = {1, 4, 2, 3};
int arr_len = 4;
int* ret = solution(arr, arr_len);
// Press Run button to receive output.
printf("Solution: return value of the function is {");
for(int i = 0; i < 4; i++){
if (i != 0) printf(", ");
printf("%d", ret[i]);
}
printf("} .\\n");
}
정답
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int* solution(int arr[], int arr_len) {
int left = 0;
int right = arr_len - 1;
while(left < right){
int tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left += 1;
right -= 1;
}
return arr;
}
반응형
'Cos Pro 2급' 카테고리의 다른 글
Cos Pro 2급 1차_문제7번 C언어 (0) | 2024.03.29 |
---|---|
Cos Pro 2급 1차_문제6번 C언어 (0) | 2024.03.29 |
Cos Pro 2급 1차_문제4번 C언어 (0) | 2024.03.29 |
Cos Pro 2급 1차_문제3번 C언어 (0) | 2024.03.29 |
Cos Pro 2급 1차_문제2번 C언어 (0) | 2024.03.29 |