백준 10811번: 바구니 뒤집기 링크
https://www.acmicpc.net/problem/10811
문제를 풀기 전 생각한 것
배열의 크기 정하기
바구니를 어떻게 역순으로 만들지
풀면서 어려웠던 점
어떻게 뒤집어야 할지 생각이 나지 않았다
코드
#include <stdio.h>
int main(void)
{
int basket[101] = {0,};
int N,M,i,j;
int temp;
scanf("%d %d", &N, &M);
for (int a = 0; a < N; a++){
basket[a] = a+1;
}
for (int b = 0; b < M; b++){
scanf("%d %d", &i, &j);
for (int c = i-1; c < j; c++){
temp = basket[c];
basket[c] = basket[j-1];
basket[j-1] = temp;
j--;
}
}
for (int d = 0; d < N; d++){
printf("%d ", basket[d]);
}
return 0;
}
풀면서 배운 점
i를 하나씩 더하면서 j를 하나씩 빼주면 된다
ex)
i,j = 0 5 -> 1 4 -> 2 3
result = 1 2 3 4 5 -> 5 2 3 4 1 -> 5 4 3 2 1
반응형