問題
解答
まさにPerlにうってつけの問題です。どこらへんに数学が必要なのかよく分かりません。
ファイルの中身はダブルクォートで囲まれた名前のカンマ区切りリストです。
#!/usr/bin/perl
use strict;
use warnings;
use feature qw/say/;
use List::Util qw/sum/;
open my $input, 'names.txt' or die $!;
my @names = sort map { /([A-Z]+)/; $1 } split /,/, do { local $/; <$input> };
my $line_no = 1;
my $total_score = 0;
my $ord_A = ord 'A';
for my $name (@names) {
$total_score
+= $line_no++ * sum map { ord($_) - $ord_A + 1 } split //, $name;
}
say $total_score;
コメント
コメントを投稿