티스토리 뷰

https://app.codility.com/demo/results/trainingAAGNJ3-BYV/


배열 A를 K 번 만큼 회전(한 번 돌 때마다 원소를 오른쪽으로 민다)

* 배열의 크기 N 과 회전 수 K 의 범위는 [0~100]

* 배열 A의 원소 값의 범위는 [-1000~1000]


첫 번째 조건을 제대로 이해 못한 결과... 87점 ㅠ_ㅠ

조건에 맞게 테스트를 잘 해보자!!

어쩐지 너무 빨리 제출한다 싶었어 ㅠ^ㅠ


function solution($A, $K) { $rs = array(); $N = sizeof($A); if ($N < 0 || $K < 0) return $rs; $loop_time = $K % $N; $tmp = array(); $tmp_A = $A; for ($i = 0 ; $i < $loop_time ; $i++) { for ($no = 0 ; $no < $N ; $no++) { if($no == 0) $tmp[$no] = $tmp_A[$N-($no+1)]; else $tmp[$no] = $tmp_A[$N-($N-$no+1)]; } $tmp_A = $tmp; } $rs = $tmp_A; return $rs; }


https://app.codility.com/demo/results/trainingSGNVTZ-4QC/


데모라 그런지 문제를 다시 풀 수가 있구나 :)

조건 하나 수정해서 100점을 득하다


function solution($A, $K) { $rs = array(); $N = sizeof($A); if ($N < 1 || $K < 0 ) return $rs; $loop_time = $K % $N; $tmp = array(); $tmp_A = $A; for ($i = 0 ; $i < $loop_time ; $i++) { for ($no = 0 ; $no < $N ; $no++) { if ($no == 0) $tmp[$no] = $tmp_A[$N-($no+1)]; else $tmp[$no] = $tmp_A[$N-($N-$no+1)]; } $tmp_A = $tmp; } $rs = $tmp_A; return $rs; }

댓글