보글보글 개발일지
article thumbnail
반응형

www.acmicpc.net/problem/10804

 

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
profile

보글보글 개발일지

@보글

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!