回答編集履歴
2
d
answer
CHANGED
@@ -35,4 +35,27 @@
|
|
35
35
|
# 0 [0, 0, 0]
|
36
36
|
# 1 [1, 1, 1, 1, 1]
|
37
37
|
# 0 [0, 0, 0, 0]
|
38
|
+
```
|
39
|
+
|
40
|
+
## 自前で書く場合
|
41
|
+
|
42
|
+
```python
|
43
|
+
lst = [0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0]
|
44
|
+
N = 3
|
45
|
+
|
46
|
+
curr_value = lst[0]
|
47
|
+
cnt = 0
|
48
|
+
for i, value in enumerate(lst):
|
49
|
+
if value == curr_value:
|
50
|
+
# 前回と同じ値ならカウント +1
|
51
|
+
cnt += 1
|
52
|
+
else:
|
53
|
+
# 前回と異なる値ならカウントを0にする。
|
54
|
+
cnt = 0
|
55
|
+
curr_value = value
|
56
|
+
|
57
|
+
if cnt == N and value == 1:
|
58
|
+
# N個連続 かつ 値が1の場合ループ終了
|
59
|
+
print(i - N)
|
60
|
+
break
|
38
61
|
```
|
1
d
answer
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
lst = [0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0]
|
7
7
|
N = 3 # 「N 個以上連続していたら」という条件の値
|
8
8
|
|
9
|
-
i =
|
9
|
+
i = 0
|
10
10
|
for k, g in groupby(lst):
|
11
11
|
g = list(g) # list に変換
|
12
12
|
|
@@ -18,6 +18,10 @@
|
|
18
18
|
i += len(g)
|
19
19
|
```
|
20
20
|
|
21
|
+
```output
|
22
|
+
8
|
23
|
+
```
|
24
|
+
|
21
25
|
[itertools.groupby](https://docs.python.org/ja/3/library/itertools.html#itertools.groupby) の使い方
|
22
26
|
|
23
27
|
```python
|