[C++] 백준 10804 : 카드 역배치
#include <iostream>
#include <algorithm>
using namespace std;
int arr[20];
int a, b, tmp;
int main(int argc, char** argv){
for(int i = 0; i < 20; i++){
arr[i] = i+1; // 초깃값 설정
}
for(int i = 0; i < 10; i++){
scanf("%d %d", &a, &b);
//뒤집는 작업
reverse(arr + a-1, arr + b); // 0부터 시작해서 -1 해줘야함.
}
for(int i = 0; i < 20; i++){
printf("%d ", arr[i]); // 출력
}
return 0;
}
STL 라이브러리인 reverse를 사용해서 간단하게 풀었다.
원래 실제 역순을 취하는 알고리즘을 짤까 하다가 배열 두 개를 선언하고 복사하여 이용하려고 했지만 굉장히 비효율적이라는 생각이 들어 STL 라이브러리로 대신하게 되었다.
Author And Source
이 문제에 관하여([C++] 백준 10804 : 카드 역배치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lamknh/C-백준-10804-카드-역배치저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)