2012/08/29

문제로 풀어보는 알고리즘 0.3 생각해보기 풀이

심심해서 풀어본 알고리듬 문제
http://www.insightbook.co.kr/post/3814 에 나와 있는 문제 풀이

Perl의 문법중에 배열 slice문법을 사용해서 한방에 여러 요소들을 치환하는 테크닉을 썼음

#!/usr/bin/env perl

my @arr = 1..8;
print "before @arr\n";
rotate(\@arr, 2, 6, 7);
print "after  @arr\n";

sub rotate {
    my ($a, $s, $t, $k) = @_;
    $k %= ($t-$s+1);
    @$a[$s+$k..$t, $s..$s+$k-1] = @$a[$s..$t];
}


결과
before 1 2 3 4 5 6 7 8
after 1 2 6 7 3 4 5 8