on my way
[GDSC Week0-2] 백준 10804번:: 카드역배치 (C++) 본문
반응형
* 문제를 풀기 위해 생각한 아이디어
벡터를 선언하고, reverse함수를 통해 해당 구간을 뒤집는다.
* 코드
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main(int argc, char const *argv[]){
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int start, end;
vector<int> v = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
for(int i=0; i<10; i++){
cin >> start >> end;
reverse(v.begin()+start-1, v.begin()+end);
}
for(int i=0; i<v.size(); i++){
cout << v[i] << ' ';
}
}
* 어떻게 풀었는지
1. vector를 선언한다.
2. 입력받기와 reverse를 10번 반복하는 for문을 선언한다.
3. for문으로 vector size만큼 모든 vector를 출력한다.
* 회고
1. 단순히 reverse 범위를 v.begin()+start 부터 v.begin()+end로 설정했는데 오류가 났다.
다시 생각해보니 시작 구간이 원래 0번인데 '1번째'로 들어가기 때문에 reverse를 할 때 start에서 1을 빼주어야 겠다고 생각했고, 코드를 돌려보니 답이 맞았다.
* 문제 링크
https://www.acmicpc.net/problem/10804
반응형
'algorithm > C++' 카테고리의 다른 글
[GDSC Week1-3] 백준 11582번:: 치킨 TOP N (C++) (0) | 2021.10.03 |
---|---|
[GDSC Week1-2] 백준 10610번:: 30 (C++) (0) | 2021.10.03 |
[GDSC Week1-1] 백준 11931번:: 수정렬하기4 (C++) (0) | 2021.10.03 |
[GDSC Week0-3] 백준 1547번:: 공 (C++) (0) | 2021.09.26 |
[GDSC Week0-1] 백준 4358번:: 생태학 (C++) (0) | 2021.09.26 |