어흥
[해커랭크] Arrays: Left Rotation (C++) 본문
728x90
반응형
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
반응형
'알고리즘 > HackerRank' 카테고리의 다른 글
[해커랭크] Array Manipulation (C++) (3) | 2021.02.08 |
---|---|
[해커랭크] Minimum Swaps 2 (C++) (0) | 2021.02.05 |
[해커랭크] 2D Array - DS (C++) (0) | 2021.02.03 |
[해커랭크] Find the nearest clone (C++) (0) | 2021.02.03 |
[해커랭크] Queue using Two Stacks (C++) (0) | 2021.02.03 |
Comments