본문 바로가기
코딩 테스트/[c언어] cos pro 2급 기출문제

[No.5] 배열의 순서 뒤집기 / cos pro 2급 c언어 기출 문제

by M개발자 2021. 5. 5.
반응형

배열의 순서 뒤집기

 

문제설명

 

주어진 배열의 순서를 뒤집으려고 합니다. 

예를 들어 주어진 배열이 [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");
}

cos pro 2급 기출문제

github

반응형

댓글