回答編集履歴
2
コード修正
test
CHANGED
@@ -22,7 +22,11 @@
|
|
22
22
|
|
23
23
|
# 1.まだ座られていない座席番号リスト
|
24
24
|
|
25
|
+
A = 6
|
26
|
+
|
25
|
-
remaining_seats = [1
|
27
|
+
remaining_seats = [(i+1) for i in range(A)]
|
28
|
+
|
29
|
+
|
26
30
|
|
27
31
|
# 2.各グループの着席開始番号と個数のリスト
|
28
32
|
|
@@ -138,7 +142,9 @@
|
|
138
142
|
|
139
143
|
# 1.まだ座られていない座席番号リスト
|
140
144
|
|
145
|
+
A = 6
|
146
|
+
|
141
|
-
remaining_seats = [1
|
147
|
+
remaining_seats = [(i+1) for i in range(A)]
|
142
148
|
|
143
149
|
|
144
150
|
|
1
コード修正
test
CHANGED
@@ -113,3 +113,101 @@
|
|
113
113
|
以上、ご自身の書かれたコードのどこにバグがあるかを見つけ出す
|
114
114
|
|
115
115
|
参考になれば幸いです。
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
---
|
122
|
+
|
123
|
+
【以下、追記】
|
124
|
+
|
125
|
+
例外を使わずに以下でもOKでした。
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
```Python
|
130
|
+
|
131
|
+
#!/usr/bin/env python
|
132
|
+
|
133
|
+
# -*- coding: utf-8 -*-
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
# 初期設定:
|
138
|
+
|
139
|
+
# 1.まだ座られていない座席番号リスト
|
140
|
+
|
141
|
+
remaining_seats = [1,2,3,4,5,6]
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
# 2.各グループの着席開始番号と個数のリスト
|
146
|
+
|
147
|
+
groups = [
|
148
|
+
|
149
|
+
{'start':2, 'num':3},
|
150
|
+
|
151
|
+
{'start':6, 'num':1},
|
152
|
+
|
153
|
+
{'start':5, 'num':2} ]
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
# 関数 diff(a, b)
|
158
|
+
|
159
|
+
# リストaからリストbの要素を除去したリストを新たに生成して返す。
|
160
|
+
|
161
|
+
# ただし、bの要素でaに含まれないものがある場合、a を返す。
|
162
|
+
|
163
|
+
def diff(a, b):
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
a_copy = list(a)
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
for e in b:
|
172
|
+
|
173
|
+
if e in a:
|
174
|
+
|
175
|
+
a_copy.remove(e)
|
176
|
+
|
177
|
+
else:
|
178
|
+
|
179
|
+
return a
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
return a_copy
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
# メインの処理ループ
|
190
|
+
|
191
|
+
for g in groups:
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
# グループ g によって取られる席番号のリストを作成
|
196
|
+
|
197
|
+
assigned_seats = [(g['start'] + i) for i in range(g['num'])]
|
198
|
+
|
199
|
+
|
200
|
+
|
201
|
+
# 残っている座席から取られる座席を除去して、残っている座席を更新
|
202
|
+
|
203
|
+
remaining_seats = diff(remaining_seats, assigned_seats)
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
|
208
|
+
|
209
|
+
# 結果の表示
|
210
|
+
|
211
|
+
print(remaining_seats)
|
212
|
+
|
213
|
+
```
|