Layer7
-Layer7 백준 바구니 뒤집기
KSJ._.seven11
2023. 4. 9. 21:27
모든 순서를 바꾼 다음 가장 왼쪽에 있는 바구니부터 출력해야 하는 문제다.
문제에 대한 설명:
먼저, 처음에는 1부터 n까지의 번호가 순서대로 적힌 상태로 시작한다. 그리고 m개의 뒤집기 연산을 수행할 수 있다.
각각의 뒤집기 연산은 시작 인데스와 끝 인덱스의 해당되며 해당 구간을 뒤집는 것이 포인트다.\
즉 뒤집기 연산을 수행한 후에는 구간이 뒤집힌 상태로 배열이 변경된다.
즉 2부터 5까지의 구간이 뒤집혀 2 4 3 5 1 의 배열이 만들어 진다.
그렇게 작성한 코드는 아래와 같다.
#include <stdio.h>
int main() {
int n, m, i, j, k;
scanf("%d %d", &n, &m);
int arr[n];
for (i = 0; i < n; i++) {
arr[i] = i+1;
}
for (i = 0; i < m; i++) {
scanf("%d %d", &j, &k);
for (j--; j < k; j++, k--) {
int temp = arr[j];
arr[j] = arr[k-1];
arr[k-1] = temp;
}
}
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
야호! 성공이다 !