https://www.acmicpc.net/problem/10804
๋ฌธ์
1๋ถํฐ 20๊น์ง ์ซ์๊ฐ ํ๋์ฉ ์ฐ์ธ 20์ฅ์ ์นด๋๊ฐ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ค๋ฆ์ฐจ์์ผ๋ก ํ ์ค๋ก ๋์ฌ์๋ค. ๊ฐ ์นด๋์ ์์น๋ ์นด๋ ์์ ์ ํ ์ซ์์ ๊ฐ์ด 1๋ถํฐ 20๊น์ง๋ก ๋ํ๋ธ๋ค.
1234567891011121314151617181920์นด๋
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
์ด์ ์ฌ๋ฌ๋ถ์ ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ผ๋ก ์นด๋์ ์์น๋ฅผ ๋ฐ๊พผ๋ค: ๊ตฌ๊ฐ [a, b] (๋จ, 1 ≤ a ≤ b ≤ 20)๊ฐ ์ฃผ์ด์ง๋ฉด ์์น a๋ถํฐ ์์น b๊น์ง์ ์นด๋๋ฅผ ํ์ฌ์ ์ญ์์ผ๋ก ๋๋๋ค.
์๋ฅผ ๋ค์ด, ํ์ฌ ์นด๋๊ฐ ๋์ธ ์์๊ฐ ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ๊ณ ๊ตฌ๊ฐ์ด [5, 10]์ผ๋ก ์ฃผ์ด์ง๋ค๋ฉด, ์์น 5๋ถํฐ ์์น 10๊น์ง์ ์นด๋ 5, 6, 7, 8, 9, 10์ ์ญ์์ผ๋ก ํ์ฌ 10, 9, 8, 7, 6, 5๋ก ๋๋๋ค. ์ด์ ์ ์ฒด ์นด๋๊ฐ ๋์ธ ์์๋ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค.
1234567891011121314151617181920์นด๋
1 | 2 | 3 | 4 | 10 | 9 | 8 | 7 | 6 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
์ด ์ํ์์ ๊ตฌ๊ฐ [9, 13]์ด ๋ค์ ์ฃผ์ด์ง๋ค๋ฉด, ์์น 9๋ถํฐ ์์น 13๊น์ง์ ์นด๋ 6, 5, 11, 12, 13์ ์ญ์์ผ๋ก ํ์ฌ 13, 12, 11, 5, 6์ผ๋ก ๋๋๋ค. ์ด์ ์ ์ฒด ์นด๋๊ฐ ๋์ธ ์์๋ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค.
1234567891011121314151617181920์นด๋
1 | 2 | 3 | 4 | 10 | 9 | 8 | 7 | 13 | 12 | 11 | 5 | 6 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
์ค๋ฆ์ฐจ์์ผ๋ก ํ ์ค๋ก ๋์ฌ์๋ 20์ฅ์ ์นด๋์ ๋ํด 10๊ฐ์ ๊ตฌ๊ฐ์ด ์ฃผ์ด์ง๋ฉด, ์ฃผ์ด์ง ๊ตฌ๊ฐ์ ์์๋๋ก ์์ ๊ท์น์ ๋ฐ๋ผ ์์๋ฅผ ๋ค์ง๋ ์์ ์ ์ฐ์ํด์ ์ฒ๋ฆฌํ ๋ค ๋ง์ง๋ง ์นด๋๋ค์ ๋ฐฐ์น๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ด 10๊ฐ์ ์ค์ ๊ฑธ์ณ ํ ์ค์ ํ๋์ฉ 10๊ฐ์ ๊ตฌ๊ฐ์ด ์ฃผ์ด์ง๋ค. i๋ฒ์งธ ์ค์๋ i๋ฒ์งธ ๊ตฌ๊ฐ์ ์์ ์์น ai์ ๋ ์์น bi๊ฐ ์ฐจ๋ก๋๋ก ์ฃผ์ด์ง๋ค. ์ด๋ ๋ ๊ฐ์ ๋ฒ์๋ 1 ≤ ai ≤ bi ≤ 20์ด๋ค.
์ถ๋ ฅ
1๋ถํฐ 20๊น์ง ์ค๋ฆ์ฐจ์์ผ๋ก ๋์ธ ์นด๋๋ค์ ๋ํด, ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง 10๊ฐ์ ๊ตฌ๊ฐ ์์๋๋ก ๋ค์ง๋ ์์ ์ ํ์ ๋ ๋ง์ง๋ง ์นด๋๋ค์ ๋ฐฐ์น๋ฅผ ํ ์ค์ ์ถ๋ ฅํ๋ค.
ํ์ด
1) ๋ฐฐ์ด ์ด์ฉํ๊ธฐ
#include <iostream>
#include <algorithm>
using namespace std;
int main(void) {
int arr[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
int begin,end;
for(int i=0; i<10; i++){
std::cin >> begin >> end;
std::reverse(&arr[begin-1],&arr[end]);
}
for(int i=0; i<20; i++){
std:: cout << arr[i] << " ";
}
2) ๋ฒกํฐ ์ด์ฉํ๊ธฐ
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main(void) {
ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
vector <int> v(20);
for(int i=0; i<20; i++){
v[i] = i+1;
}
int a,b;
for(int i=0; i<10; i++){
cin >> a >> b;
reverse(v.begin()+a-1,v.begin()+b);
}
for(int i=0; i<20; i++){
cout << v[i] << " ";
}
return 0;
}
TIL
'๐๏ธ ICPC Sinchon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++][BOJ] ๋ฐฑ์ค 21316๋ฒ: ์คํผ์นด (0) | 2021.08.11 |
---|---|
[C++] ๋ฐฑ์ค 1448๋ฒ: ์ผ๊ฐํ ๋ง๋ค๊ธฐ (0) | 2021.07.26 |
[์๊ฐ์ด๊ณผ][C++] ๋ฐฑ์ค 10825๋ฒ : ๊ตญ์์ (0) | 2021.07.23 |
[C/C++] ๋ฐฑ์ค 1158๋ฒ : ์์ธํธ์ค ๋ฌธ์ (0) | 2021.07.13 |
[C/C++] ๋ฐฑ์ค15552๋ฒ : ๋น ๋ฅธ A+B (0) | 2021.07.13 |