반응형
10804번: 카드 역배치
1부터 20까지 오름차순으로 놓인 카드들에 대해, 입력으로 주어진 10개의 구간 순서대로 뒤집는 작업을 했을 때 마지막 카드들의 배치를 한 줄에 출력한다.
www.acmicpc.net
간단한 배열문제다.
index를 편하게 하기 위해서 i의 범위를 1부터 20으로 정했다.
우선 for문으로 각 칸에 맞게 1~20을 채운다.
count의 의미는 바꿔야하는 수의 개수이다. [9,13]의 경우 9,10,11,12,13 으로 5개이다.
9,10만 뒤에 있는 수로 바꿔주면 된다.
이후 인덱스만 신경써서 출력해주면 된다.
#include <iostream>
using namespace std;
int arr[22];
int main(void){
ios_base::sync_with_stdio(0);
cin.tie(0);
for(int i=1; i<21; i++){
arr[i]=i;
}
for(int i=0;i<10;i++){
int a,b;
cin>>a>>b;
int count=b-a+1;
for(int j=a;j<a+count/2;j++){
swap(arr[j],arr[b--]);
}
}
for(int i=1;i<21;i++)
cout<<arr[i]<<" ";
}
반응형
'알고리즘' 카테고리의 다른 글
[백준/1012번][C++] 유기농 배추 (0) | 2021.02.04 |
---|---|
[백준/2444번][C++] 별 찍기 - 7 (0) | 2021.02.03 |
[백준/1267번][C++] 핸드폰 요금 (0) | 2021.02.03 |
[백준/1692번][C++] 곱셈 (0) | 2021.01.29 |
[백준/4179번][C++] 불! (0) | 2021.01.28 |