[HackerRank/C++] Sequence Equation
2023. 2. 6. 08:09ㆍ코딩테스트 해커랭크/Algorithms -Easy
p 배열이 있을때 같은 크기의 배열에서 각각 인덱스에 접근해 값을 구한다
만약 x배열이라고 하고 p[x]의 값으로 접근하고, 이 값을 다시 p의 인덱스로 접근한다
이렇게 만든 숫자 배열을 return 한다
vector<int> permutationEquation(vector<int> p)
{
vector<int> result;
result.resize(p.size());
for (int i = 0; i < p.size(); ++i)
{
result[p[p[i] - 1] - 1] = i + 1;
}
return result;
}
설명하기도 싫다 끔찍하다 문제 이해하는게 제일 힘들다
result vector를 미리 만들어 resize로 p.size()만큼 늘려준다
반복문으로 돌면서 p[i]에 접근한 값에 -1을 한 값을 다시 인덱스로 사용하고 그 값에서 -1을 한 값을 다시 인덱스로 사용하며 그렇게 result 인덱스에 접근해 i 값에 + 1을 더한 값으로 만들어 준다
visual studio같은 프로그램으로 디버깅 하면서 만드는게 제일 편한 방법같다..
'코딩테스트 해커랭크 > Algorithms -Easy' 카테고리의 다른 글
| [HackerRank/C++] Find Digits (0) | 2023.02.06 |
|---|---|
| [HackerRank/C++] Jumping on the Clouds: Revisited (0) | 2023.02.06 |
| [HackerRank/C++] Circular Array Rotation (0) | 2023.02.06 |
| [HackerRank/C++] Save the Prisoner! (0) | 2023.02.06 |
| [HackerRank/C++] Viral Advertising (0) | 2023.02.06 |