Algo
[Codility] Lesson2. CyclicRotation
S.Zinlee
2018. 9. 29. 02:35
1. 문제
N개의 정수로 구성된 배열 A를 정수 K만큼 우측으로 회전한 배열 값을 구하라.
shift시 배열의 마지막 요소는 첫번째 위치로 이동한다.
예를 들어 배열 A가 {5, 1, 2, 3, 7, 1, 2} 이고, K의 값이 3일 경우 결과 값은 { 7, 1, 2, 5, 1, 2, 3}이다.
2. 풀이
배열 A의 length가 2보다 작을 경우엔 rotation의 의미가 없기 때문에 배열 A를 반환한다.
K의 값이 배열 A의 length보다 클 경우 K/A.length만큼 최초 배열A와 동일한 형태가 되기 때문에 K%A.length만큼만 rotation를 진행한다.
A와 같은 사이즈의 배열 rv을 생성하여 K%A.length위치부터 차례로 배열 A의 값을 대입하며 배열의 마지막 이후 첫번째 요소부터 차례로 대입한다.
3. 결과
해당 문제는 Performance 점수가 없으며 실행 결과 Correctness 100% 로 Task Score는 100 point가 되었다.
4. 코드 및 테스트 코드