알고리즘/HackerRank
[해커랭크] Arrays: Left Rotation (C++)
라이언납시오
2021. 2. 3. 15:58
728x90
반응형
Arrays: Left Rotation | HackerRank
Given an array and a number, d, perform d left rotations on the array.
www.hackerrank.com
1. 주의할 점
- D번 수행할 때 마다 1칸씩 앞으로 당기지 않도록 한다(O(A.size()*D))
2. 구현
- 크기가 A.size()인 벡터 V[]를 생성한다
- A의 원소가 D만큼 왼쪽으로 가면, 기존자리 - D의 위치로 이동한다. 단, 이 값이 음수라면 A의 크기만큼 더해준다(뒤로 돌아가기 위해)
- A의 원소가 최종적으로 위치할 장소를 구했다면, V[] 벡터에 해당 원소를 삽입한다(구한 위치로 삽입)
vector<int> rotLeft(vector<int> a, int d) {
int num = a.size();
vector<int> v(num);
for(int i=0;i<num;i++){
int newLoc = i-d;
if(newLoc<0) newLoc +=num;
v[newLoc] = a[i];
}
return v;
}
728x90
반응형