문제: app.codility.com/programmers/lessons/2-arrays/cyclic_rotation/
CyclicRotation coding task - Learn to Code - Codility
Rotate an array to the right by a given number of steps.
app.codility.com
1. -1000 ~ 1000 사이의 정수가 N개 있는 배열 A
2. 배열 A를 K번 회전시켰을 때 결과 리턴
3. N, K 는 0 ~ 100 사이의 정수
처음에는 입력한 값의 유효성 검사를 해줘야 되는 줄 알고 단계마다 확인하는 코드를 넣어줬는데...
코딜리티를 풀다보니 빼도 되는 걸 발견! (다른 사람들꺼 보면서 예습했으면 진작 알았을껄...)
배열을 회전시키기 위해 모듈러 연산을 이용했다.
(5개의 정수를 5번 회전시키면 제자리에 오는걸 생각해보면, 5의 배수-몫- 은 회전 결과에 의미가 없다.)
코드구현 (C#)
int[] result = new int[A.Length];
for (int i = 0; i < A.Length; i++)
{
result[(i + K) % A.Length] = A[i];
}
return result;
'공부하자 > Codility' 카테고리의 다른 글
[Codility] Lesson3. TapeEquilibrium (C#) (0) | 2020.11.17 |
---|---|
[Codility] Lesson3. PermMissingElem (C#) (0) | 2020.11.17 |
[Codility] Lesson3. FrogJmp (C#) (0) | 2020.11.17 |
[Codility] Lesson2. OddOccurrencesInArray (C#) (0) | 2020.11.17 |
[Codility] Lesson1. BinaryGap (C#) (0) | 2020.07.24 |