Perlクイズ
来ました新しいのが。問題はこちらのバックナンバーを参照してください。
うーん。今回のクイズは解法に個人差がものすごくありそうです。
もともと同じ手段をとっているのに異なる書き方ができる言語なんで、正確に伝えるのが難しいんですが今回のは手段が多そう、という意味です。……わかりにくいなぁ。
さて、私の短絡した思考で作った今回の解答がこれ。
題意を満たすサブルーチンBuildTreeを作成。
問題文の最後に追加すれば動作します。
[code]
sub BuildTree
{
my %tree;
for my $i(0..9){ @{$tree{$i}} = ();}
foreach( @score ){
$_ =~ /(\d{0,1})(\d)/;
if( $1 ne ”){
push @{$tree{$1}}, $2;
}else{
push @{$tree{0}}, $2;
}
}
for my $i(0..9){
print “$i | “;
print sort(@{$tree{$i}});
print “\n”;
}
}
BuildTree();
[/code]
最初、問題文中で「use strict」が宣言してあるのを無視してたため、Arrayリファレンスの初期化を忘れてて嵌ったのは内緒。つづけてネタっぽい解答も考えてみようかな。
って次に思いついた方が一般的っぽい解答なのは何故だろう……(汗)
こんなの。
[code]
my %tree;
for (0..9){@{$tree{$_}}=();}
foreach( @score ){
my $q = int($_ / 10);
push @{$tree{$q}}, $_ % 10;
}
foreach( sort keys %tree){
print $_, ” | “, sort(@{$tree{$_}}), “\n”;
}
[/code]
ネタの才能は無いなぁ。やっぱり。