본문 바로가기

Datastructure/[Algorithm]

[자료구조] 배열 연습문제(2): 뒤깁기 정보

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
반응형
댓글