728x90
방법1)
- 스택을 이용해 뒤집어준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#include <iostream>
#include <stack>
using namespace std;
int main() {
int a, b, arr[21];
stack<int> s;
for(int i=1; i<=20; i++) //20개의 숫자를 입력 받는다
arr[i]=i;
for(int i=0; i<10; i++) {
cin>>a>>b; //어디부터 어디까지 뒤집을지 받는다
for(int j=a;j<=b;j++) { //a~b구간을 스택에 옮겨준다
s.push(arr[j]);
}
for(;a<=b;a++) { //스택에서 다시 옮긴다
arr[a]=s.top();
s.pop();
}
}
for(int i=1; i<=20; i++) //출력
cout<<arr[i]<<" ";
}
|
cs |
방법2)
- reverse함수를 이용해 뒤집어준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include <algorithm>
#include <iostream>
using namespace std;
int main() {
int arr[22], a, b;
for(int i=1; i<=20; i++)
arr[i]=i;
for(int i=0; i<10; i++) {
cin >> a >> b;
reverse(arr+a, arr+b+1);
}
for(int i=1; i<=20; i++)
cout << arr[i] << ' ';
}
|
cs |
그 외에는 그냥 배열과 배열의 인덱스만을 이용해 뒤집어주는 등의 방법도 있다.
728x90
'알고리즘 > 문제' 카테고리의 다른 글
[백준] 1157. 단어 공부 <C++> (0) | 2020.04.15 |
---|---|
[백준] 14563. 완전수 <C++> (0) | 2020.04.14 |
[백준] 1244. 스위치 켜고 끄기 <C++> (0) | 2020.04.13 |
[백준] 3495. 아스키 도형 <C++> (0) | 2020.04.13 |
[백준] 16463. 13일의 금요일 <C++> (0) | 2020.03.16 |
댓글