気まぐれ更新

codility lesson2 CyclicRotation

先日、勤務先で来期から入社する海外メンバーのプロフィールを見せてもらった中で

codility というプログラミング試験の存在を知り、練習問題的なものが公開されていたので挑戦してみました

言語は最近忘れつつあるgoをリハビリ目的に選択

問題

CyclicRotation coding task - Learn to Code - Codility

引数で与えらた配列Aを同じく引数で渡された整数K回右にずらし、末尾のものは先頭に移動させるというものです

回答

package solution

func Solution(A []int, K int) []int {
    counter := 0
    for counter < K {
        last := A[len(A)-1]
        for j := len(A)-1; j > 0; j-- {
            A[j] = A[j-1]
        }
        A[0] = last
        counter++
    }
    return A
}

正答率: 87%

感想

空配列のチェックをすっかり忘れていて out of Indexで点数落としてしまいました

こういうプログラミング問題なものは苦手なので、言語の復習も兼ねてちまちまやっていこうと思います