코딩 테스트/[c언어] cos pro 2급 기출문제
[No.5] 배열의 순서 뒤집기 / cos pro 2급 c언어 기출 문제
M개발자
2021. 5. 5. 22:20
반응형
배열의 순서 뒤집기
문제설명
주어진 배열의 순서를 뒤집으려고 합니다.
예를 들어 주어진 배열이 [1, 4, 2, 3]이면 순서를 뒤집은 배열은 [3, 2, 4, 1]입니다.
정수가 들어있는 배열 arr와 arr_len이 매개변수로 주어졌을 때, arr을 뒤집어서 return하는 solution함수를 작성하세요.
예시
arr | arr_len | return |
[1, 4, 2, 3] | 4 | [3, 2, 4, 1] |
코드 해석 및 전체 코드
주석 1. left의 값이 right의 값보다 작을동안 반복하기
left | right | left < right |
0 | 3 | true |
1 | 2 | true |
3 | 2 | false |
left가 3일 때 right 2보다 크므로 반복문 수행을 그만둔다.
temp (temp = arr[left]) | left (arr[left] = arr[right]) | right (arr[right] = temp) |
1 | 3 | 1 |
4 | 2 | 4 |
#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) { //1
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left += 1;
right -= 1;
}
return arr;
}
int main() {
int arr[4] = { 1, 4, 2, 3 };
int arr_len = 4;
int* ret = solution(arr, arr_len);
printf("The return value of solution function {");
for (int i = 0; i < 4; i++) {
if (i != 0) printf(", ");
printf("%d", ret[i]);
}
printf("}\n");
}
반응형