Programming/C
[백준] 10811: 바구니 뒤집기
gayeon_
2024. 1. 11. 09:44
첫 줄에 바구니 개수, 순서를 변경할 횟수를 입력받고
그 다음 줄부터 M번 줄까지 역순으로 만들 바구니의 번호를 입력한다.
입력이 완료되면 변경된 바구니의 순서를 출력하는 문제이다.
입출력 예시다.
#include <stdio.h>
int main() {
int N;
int M;
int i;
int j;
int ary[100] = {0};
int tmp = 0;
scanf("%d %d", &N, &M);
for(int i = 1; i <= N; i++) {
ary[i] = i;
}
for(int a = 1; a <= M; a++) {
scanf("%d %d", &i, &j);
for(int b = i; b <= j; b++) {
tmp = ary[b];
ary[b] = ary[j];
ary[j] = tmp;
j--;
}
}
for(int i = 1; i <= N; i++) {
printf("%d ", ary[i]);
}
return 0;
}
임시 변수 tmp를 선언해 사용했다.
루프를 한 번 돌 때마다 i값은 증가하고 j 값이 줄어든다.
1번부터 4번 바구니까지의 순서를 역순으로 바꾼다고 예를 들면,
1번과 4번 바구니를 바꾸고 2번과 3번 바구니를 바꿀 수 있도록 j 값을 감소한 것이다.