問題
projecteuler.net
names.txt内の名前を辞書順にランク付けする。
その後、名前の各文字がアルファベット何文字目かを調べて和をとり、名前のランクと掛ける。
names.txt内の総ネームスコアはいくらか?
つまり?
ABCさんとHIさんとDEFGさんがいるとする。
辞書順に並ぶとこう。
ABC, DEFG, HI
ランクはABCさんが1、DEFGさんが2、HIさんが3。
次に各アルファベットが何文字目か調べて和をとる。
Aは1番目だから…
ABC, DEFG, HI
→ 1+2+3, 4+5+6+7, 8+9
→ 6, 22, 17
これにランクを掛けて、和をとる。
6×1 + 22×2 + 17×3
= 6 + 44 + 34
= 84
そんなに難しくなさそう。
コード
using System; using System.Diagnostics; using System.IO; using System.Linq; namespace Problem22 { class Program { static String[] names; static void Main(string[] args) { ReadNames(); Debug.WriteLine(TotalNameScore()); } /// <summary> /// 名前ファイルの読み込みとソート /// </summary> static void ReadNames() { String path = @"..\..\names.txt"; names = File.ReadAllText(path).Split(',').Select(obj => obj.Replace("\"", "")).ToArray(); Array.Sort(names); } /// <summary> /// 全名前スコアを求める /// </summary> static Int64 TotalNameScore() { Int64 sum = 0; for (int i = 0; i < names.Length; i++) { int rank = i + 1; int score = 0; foreach (char c in names[i]) { score += (c - '@'); } sum += (rank * score); } return sum; } } }
答え
871198282
- 作者: 新紀元社編集部
- 出版社/メーカー: 新紀元社
- 発売日: 2015/12/19
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
- 作者: 水村光男
- 出版社/メーカー: 山川出版社
- 発売日: 2014/05
- メディア: 単行本
- この商品を含むブログを見る
- 作者: 学研辞典編集部
- 出版社/メーカー: 学研マーケティング
- 発売日: 2011/11/22
- メディア: 単行本
- 購入: 2人 クリック: 6回
- この商品を含むブログを見る