■ 문제 설명
주어진 배열의 순서를 뒤집으려고 합니다.
예를 들어 주어진 배열이 [1, 4, 2, 3]이면, 순서를 뒤집은 배열은 [3, 2, 4, 1]입니다.
정수가 들어있는 배열 arr와 arr의 길이 arr_len이 매개변수로 주어졌을때, arr를 뒤집어서 return 하도록 solution함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.
■ 매개변수 설명
정수가 들어있는 배열 arr와 arr의 길이 arrlenㅣ solution함수의 매개변수로 주어집니다.
* arrlen은 1이상 100이하의 자연수입니다.
* arr의 원소는 -100이상 100이하의 정수입니다.
■ return 값 설명
배열 arr의 순서를 뒤집어서 return 해주세요
■ 예시
[1, 4, 2, 3]은 뒤에서 부터 읽으면 3, 2, 4, 1입니다. 따라서 [1, 4, 2, 3]의 순서를 뒤집은 결과는 [3, 2, 4, 1]이 됩니다.
■ 초기내용
위 내용을 바탕으로 solution함수 내의 while문의 조건식을 채워야 한다.
■ 답안
#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(right>left){
int temp = arr[left]; //temp = arr[0]
arr[left] = arr[right]; //arr[0] = arr[3]
arr[right] = temp; //arr[3] = arr[0]
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("solution 함수의 반환 값은 {");
for(int i = 0; i < 4; i++){
if (i != 0) printf(", ");
printf("%d", ret[i]);
}
printf("} 입니다.\n");
}
■ 답안 풀이 및 해석
(※ 실행 흐름 순으로 해석됩니다.)
int main() {
int arr[4] = {1, 4, 2, 3};
int arr_len = 4;
int* ret = solution(arr, arr_len);
printf("solution 함수의 반환 값은 {");
for(int i = 0; i < 4; i++){
if (i != 0) printf(", ");
printf("%d", ret[i]);
}
printf("} 입니다.\n");
}
//배열 arr을 4개를 선언
//배열 arr의 길이 arr_len을 선언
//ret 포인터 변수에 solution의 return값 주소를 대입
//printf()함수를 통해 출력
//for문을 arr의 개수만큼 돌림
// i가 0이 아니면 arr방의 내용을 순서대로 출력
int* solution(int arr[], int arr_len) {
int left = 0;
int right = arr_len - 1;
while(right>left){
int temp = arr[left]; //temp = arr[0]
arr[left] = arr[right]; //arr[0] = arr[3]
arr[right] = temp; //arr[3] = arr[0]
left += 1;
right -= 1;
}
return arr;
}
//left를 0으로, right를 arr_len-1(3)으로 선언, 배열의 인덱스는 배열의 크기-1이다.
//right의 값이 left보다 클때 while반복문 실행
//임의의 변수 temp를 이용하여 arr[right]방(인덱스가 높은 부분)과 arr[left]방(인덱스가 작은 부분)을 switch
//left+1, right-1을 하여 각 배열을 차례로 비교
■ 실행결과
COS PRO 2급 기출문제 - C언어 - 구름EDU
YBM IT에서 시행하는 COS Pro 자격증 기출문제를 직접 풀어볼 수 있는 실습 위주의 강좌입니다.
edu.goorm.io
'Cospro 2급 > C언어' 카테고리의 다른 글
[1차]문제7. 영어 수강 대상자 수 구하기 풀이 및 해석 (0) | 2021.05.06 |
---|---|
[1차]문제 6. 369 게임 박수의 갯수는? 풀이 및 해석 (0) | 2021.05.05 |
[1차]문제4. 등장하는 구장 많은 수와 적은 수 구하기 풀이 및 해석 (0) | 2021.05.03 |
[1차]문제3. 시작 날짜와 끝 날짜의 사이 날짜 구하기 풀이 및 해석 (0) | 2021.05.03 |
[1차] 문제1, 문제2 풀이 및 해석 (0) | 2021.05.02 |
댓글