回答編集履歴

2

追記

2020/01/08 14:20

投稿

winterboum
winterboum

スコア23364

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
 
26
26
 
27
- 追記
27
+ 追記:わからないという行を1行まちがえてました
28
28
 
29
29
  豆まきというのが何をしたい題材なのかわからないのですが、そのcodeは
30
30
 

1

追記

2020/01/08 14:20

投稿

winterboum
winterboum

スコア23364

test CHANGED
@@ -24,4 +24,72 @@
24
24
 
25
25
 
26
26
 
27
+ 追記
28
+
29
+ 豆まきというのが何をしたい題材なのかわからないのですが、そのcodeは
30
+
31
+ while lines = gets が終わったところで line には例えば
32
+
33
+ [[1, 2, 3, 4], [5, 6, 7, 8], [2, 5, 6]] が入ります。
34
+
35
+
36
+
37
+ line = line.compact.inject(:+)
38
+
39
+ のinjectは配列の + になりますね。
40
+
41
+ ですので結果は
42
+
43
+ [1, 2, 3, 4, 5, 6, 7, 8, 2, 5, 6]
44
+
45
+ となります。
46
+
47
+
48
+
49
+ puts line.map{|l| line.sort.reverse.index(l) + 1}
50
+
51
+ の line.sort.reverse は 
52
+
53
+ [8, 7, 6, 6, 5, 5, 4, 3, 2, 2, 1]
54
+
55
+ です
56
+
57
+ line.map{|l| の l は 1, 2, 3, 4, 5, 6, 7, 8, 2, 5, 6 の順に出てきます
58
+
59
+ から
60
+
61
+ 最初の 1 の時は [8, 7, 6, 6, 5, 5, 4, 3, 2, 2, 1].index(1) で 10 です
62
+
63
+ 次の  2 の時は [8, 7, 6, 6, 5, 5, 4, 3, 2, 2, 1].index(2) で 8 です
64
+
65
+ ということで、+1 がない場合は
66
+
67
+ 10, 8, 7, 6, 4, 2, 1, 0, 8, 4, 2
68
+
69
+ +1 があるので
70
+
71
+ 11, 9, 8, 7, 5, 3, 2, 1, 9, 5, 3
72
+
73
+ の順に出力されます
74
+
75
+ なお、
76
+
77
+ line.map の結果は配列の
78
+
79
+ [11, 9, 8, 7, 5, 3, 2, 1, 9, 5, 3]
80
+
81
+ ですが、配列を puts すると、要素毎に開業されるので
82
+
83
+ 11
84
+
85
+ 9
86
+
87
+ 8
88
+
89
+ 7
90
+
27
91
  .
92
+
93
+ .
94
+
95
+ となります