-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathproblem-022.rb
More file actions
41 lines (33 loc) · 831 Bytes
/
problem-022.rb
File metadata and controls
41 lines (33 loc) · 831 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/env ruby
# What is the total of all the name scores in the file? (data/names.txt)
# read file, extract names, put them in an array and sort
def alpha_score_for_name(name, alpha_values)
score = 0
name.split("").each do |alphabet|
score += alpha_values[alphabet]
end
return score
end
names = []
names_string = ""
File.open("data/names.txt").each do |line|
names_string = line
end
names_string.split(",").each do |name|
names << name.sub("\"", "").sub("\"", "")
end
names.sort!
# generate the alphabetical values hash
alpha_values = {}
value = 1
('A'..'Z').each do |alphabet|
alpha_values[alphabet] = value
value += 1
end
sum_of_scores = 0
position = 1
names.each do |name|
sum_of_scores += position * alpha_score_for_name(name, alpha_values)
position += 1
end
puts "Answer: #{sum_of_scores}"