반응형
algorithm 헤더의 reverse 함수를 사용하면 쉽게 해결이 가능한 문제다.
문제에서는 배열의 원소도 입력해주지만 실제 문제를 푸는 데에는 필요가 없으므로 입력만 받고 배열에는 몇 번째원소인지를 입력해주었다. 그 다음 들어오는 입력에 따라 reverse 함수를 이용해 배열을 뒤집어주고 마지막에 전체 배열을 돌면서 K번째 원소가 몇번째에 위치하고 있는지를 출력해 주면 된다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int N, K, M;
vector<int> v;
int main(){
cin.tie(NULL);
ios_base::sync_with_stdio(false);
cin>>N>>K>>M;
int t;
v = vector<int> (N);
for(int i=0;i<N;i++){
cin>>t;
v[i]=i+1;
}
for(int j=0;j<M;j++){
cin>>t;
if(t>0){
reverse(v.begin(), v.begin()+t);
} else {
t= -t;
reverse(v.end()-t, v.end());
}
}
for(int i=0;i<N;i++){
if(v[i]==K){
cout<<i+1; break;
}
}
return 0;
}
반응형
'알고리즘 > BOJ' 카테고리의 다른 글
BOJ 3273 ) 두 수의 합 (C++) (0) | 2024.07.17 |
---|---|
BOJ 15705 ) 단어 찾기 (C++) (0) | 2022.06.19 |
BOJ 3190 ) 뱀 (C++) (0) | 2022.06.16 |
BOJ 5921 ) Escaping the Farm (C++) (0) | 2022.06.13 |
BOJ 18877 ) Social Distancing (C++) (0) | 2022.06.10 |