Datastructure/[Algorithm]
[자료구조] 배열 연습문제(2): 뒤깁기 정보
old-cast1e
2022. 1. 14. 01:26
728x90
반응형
N(3≤N≤100)개의 정수로 이루어진 수열X를 “뒤집기정보”에 의해 변환한 최종 결과를 출력하는 프로그램을 작성하시오.
<입력값>
- 수열의 길이(N)
- 수열
- 뒤집기 정보의 개수(M): 뒤집을 구간의 개수
- 뒤집기 구간 정보: M*2개
정답코드
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
void swap(int *X,int stt,int end){
int rep = (end - stt)/2+1,tmp;
for(int i=0;i<rep;i++){
tmp = X[stt+i];
X[stt+i] = X[end-i];
X[end-i] = tmp;
}
}
int main(){
int N,X[100],rvs_cnt;
scanf("%d",&N);
for(int i=0;i<N;i++)scanf("%d",&X[i]);
scanf("%d",&rvs_cnt);
int *rvs_arr = (int*)malloc(sizeof(int)*(rvs_cnt*2));
for(int j=0;j<(rvs_cnt*2);j+=2)scanf("%d %d",&rvs_arr[j],&rvs_arr[j+1]);
for(int i=0;i<rvs_cnt*2;i+=2) swap(X,rvs_arr[i],rvs_arr[i+1]);
for(int i=0;i<N;i++)printf(" %d",X[i]);
}
728x90
반응형