回答編集履歴
3
修正
test
CHANGED
@@ -106,14 +106,6 @@
|
|
106
106
|
|
107
107
|
for k, v in answers.items():
|
108
108
|
|
109
|
-
print("{0:<5} {1:>5.0f}%".format(k[0] if len(k) ==
|
110
|
-
|
111
|
-
1 else str(k[0])+"-"+str(k[-1]), v*100))
|
112
|
-
|
113
|
-
def print_fmt(answers):
|
114
|
-
|
115
|
-
for k, v in answers.items():
|
116
|
-
|
117
109
|
print("{0:<5} {1:>5.1f}%".format(k[0] if len(k) ==
|
118
110
|
|
119
111
|
1 else str(k[0])+"-"+str(k[-1]), v*100))
|
2
修正
test
CHANGED
@@ -1,8 +1,22 @@
|
|
1
1
|
```python
|
2
|
+
|
3
|
+
from itertools import groupby # <--追加。
|
4
|
+
|
5
|
+
|
2
6
|
|
3
7
|
def cut(source):
|
4
8
|
|
9
|
+
# source内の要素が抜けている場合に対応。さらに連続数のグループに分割する。
|
10
|
+
|
11
|
+
fix_source = [tuple(map(lambda s: s[1], g)) for item in source for _, g in groupby(
|
12
|
+
|
13
|
+
enumerate(item), key=lambda x:x[0]-x[1])] # <--追加
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
# 先頭数の昇順で並び替える。
|
18
|
+
|
5
|
-
sr = sorted(source, key=lambda x: x[0])
|
19
|
+
sr = sorted(fix_source, key=lambda x: x[0]) # <--修正
|
6
20
|
|
7
21
|
|
8
22
|
|
@@ -62,7 +76,9 @@
|
|
62
76
|
|
63
77
|
|
64
78
|
|
65
|
-
def pred(source
|
79
|
+
def pred(source): #<----修正
|
80
|
+
|
81
|
+
piece = cut(source) #<----修正
|
66
82
|
|
67
83
|
ans = {}
|
68
84
|
|
@@ -78,9 +94,13 @@
|
|
78
94
|
|
79
95
|
return ans
|
80
96
|
|
81
|
-
|
97
|
+
```
|
82
98
|
|
83
99
|
|
100
|
+
|
101
|
+
例
|
102
|
+
|
103
|
+
```python
|
84
104
|
|
85
105
|
def print_fmt(answers):
|
86
106
|
|
@@ -88,82 +108,42 @@
|
|
88
108
|
|
89
109
|
print("{0:<5} {1:>5.0f}%".format(k[0] if len(k) ==
|
90
110
|
|
111
|
+
1 else str(k[0])+"-"+str(k[-1]), v*100))
|
112
|
+
|
113
|
+
def print_fmt(answers):
|
114
|
+
|
115
|
+
for k, v in answers.items():
|
116
|
+
|
117
|
+
print("{0:<5} {1:>5.1f}%".format(k[0] if len(k) ==
|
118
|
+
|
91
119
|
1 else str(k[0])+"-"+str(k[-1]), v*100))
|
120
|
+
|
121
|
+
print()
|
92
122
|
|
93
123
|
|
94
124
|
|
95
125
|
|
96
126
|
|
97
|
-
A_CA
|
127
|
+
A_CA= [[1, 2, 4, 5], [3, 4, 5, 6, 7], [3, 4, 5, 8]]
|
98
128
|
|
99
|
-
|
129
|
+
print_fmt(pred(A_CA)) #<----まとめて呼び出せるようにした
|
130
|
+
|
131
|
+
```
|
100
132
|
|
101
133
|
|
102
134
|
|
103
|
-
|
135
|
+
出力結果
|
104
|
-
|
105
|
-
print_fmt(pred(A_CA, p))
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
>> 1 50%
|
110
|
-
|
111
|
-
>> 2-5 100%
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
p = cut(B_CA)
|
118
|
-
|
119
|
-
print_fmt(pred(B_CA, p))
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
>> 1 50%
|
124
|
-
|
125
|
-
>> 2-4 100%
|
126
|
-
|
127
|
-
>> 5 50%
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
p = cut(A_CA+B_CA)
|
132
|
-
|
133
|
-
print_fmt(pred(A_CA + B_CA, p))
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
>> 1 50%
|
138
|
-
|
139
|
-
>> 2-4 100%
|
140
|
-
|
141
|
-
>> 5 75%
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
C_CA = [(10, 11, 12, 13), (3, 4, 5, 6, 7), (1, 2, 3, 4, 5), (12, 13, 14),(14, 15)]
|
148
|
-
|
149
|
-
p = cut(C_CA)
|
150
|
-
|
151
|
-
print_fmt(pred(C_CA, p))
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
>> 1-2 20%
|
156
|
-
|
157
|
-
>> 3-5 40%
|
158
|
-
|
159
|
-
>> 6-7 20%
|
160
|
-
|
161
|
-
>> 10-11 20%
|
162
|
-
|
163
|
-
>> 12-13 40%
|
164
|
-
|
165
|
-
>> 14 40%
|
166
|
-
|
167
|
-
>> 15 20%
|
168
136
|
|
169
137
|
```
|
138
|
+
|
139
|
+
1-2 33.3%
|
140
|
+
|
141
|
+
3 66.7%
|
142
|
+
|
143
|
+
4-5 100.0%
|
144
|
+
|
145
|
+
6-7 33.3%
|
146
|
+
|
147
|
+
8 33.3%
|
148
|
+
|
149
|
+
```
|
1
f
test
CHANGED
@@ -110,8 +110,6 @@
|
|
110
110
|
|
111
111
|
>> 2-5 100%
|
112
112
|
|
113
|
-
>> 1 50%
|
114
|
-
|
115
113
|
|
116
114
|
|
117
115
|
|