https://www.acmicpc.net/problem/10811

#include <stdio.h>
int main() {
//N개의 바구니를 M번 실행
//바구니 만들기
int N,M;
scanf("%d %d",&N,&M);
int ary[N+1];
for(int l = 1; l<=N; l++) {
ary[l] = l;
}
//바구니 바꾸기
for(int k =1; k<=M; k++) {
int i,j;
scanf("%d %d",&i,&j);
//i번째부터 j번째까지의 수를 역순으로
while(i < j) { //만나기 전까지 수행한다
//교환
int dummy = ary[i];
ary[i] = ary[j];
ary[j] = dummy;
i++; //한 칸 앞으로
j--; //한 칸 뒤로
}
}
for(int l = 1; l<=N; l++) {
printf("%d ",ary[l]);
}
return 0;
}
[주목할만한 부분]
역순으로 뒤집는 방법을 살핀다.
처음(i, i+1, i+2 . . . 번째)과 끝(j, j-1, j-2 . . . 번째)을 짝지어서 자리를 바꾸는 방법이다.
//i번째부터 j번째까지의 수를 역순으로 while(i < j) { //만나기 전까지 수행한다 //교환 int dummy = ary[i]; ary[i] = ary[j]; ary[j] = dummy; i++; //한 칸 앞으로 j--; //한 칸 뒤로 }
'PROGRAMMING > [C] Baekjoon Online Judge (BOJ)' 카테고리의 다른 글
| [C/Baekjoon] 백준 2743번(5-2) : 단어 길이 재기 (1) | 2025.01.06 |
|---|---|
| [C/Baekjoon] 백준 1546번(4-10) : 평균 (2) | 2025.01.05 |
| [C/Baekjoon] 백준 3052번(4-8) : 나머지 (0) | 2025.01.04 |
| [C/Baekjoon] 백준 10871번(4-2) : x보다 작은 수 (+오름차순 정렬) (0) | 2024.12.31 |
| [C/Baekjoon] 백준 10951번(3-12) : A + B - 4 (0) | 2024.12.30 |