반응형
배열의 순서 뒤집기
문제설명
주어진 배열의 순서를 뒤집으려고 합니다.
예를 들어 주어진 배열이 [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");
}
반응형
'코딩 테스트 > [c언어] cos pro 2급 기출문제' 카테고리의 다른 글
[No.7] 영어 수강 대상자 수 구하기 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.06 |
---|---|
[No.6] 369 게임 박수의 개수는? / cos pro 2급 c언어 기출 문제 (0) | 2021.05.05 |
[No.4] 등장하는 가장 많은 수와 적은 수 구하기 / cos pro 2급 c언어 기출 문제 (4) | 2021.05.03 |
[No.3] 시작 날짜와 끝 날짜의 사이 날짜 구하기 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.03 |
[No.2] 쇼핑몰 등급 별 할인 금액 구하기 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.02 |
댓글