回答編集履歴

2

d

2019/04/16 07:15

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -73,3 +73,49 @@
73
73
  # 0 [0, 0, 0, 0]
74
74
 
75
75
  ```
76
+
77
+
78
+
79
+ ## 自前で書く場合
80
+
81
+
82
+
83
+ ```python
84
+
85
+ lst = [0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0]
86
+
87
+ N = 3
88
+
89
+
90
+
91
+ curr_value = lst[0]
92
+
93
+ cnt = 0
94
+
95
+ for i, value in enumerate(lst):
96
+
97
+ if value == curr_value:
98
+
99
+ # 前回と同じ値ならカウント +1
100
+
101
+ cnt += 1
102
+
103
+ else:
104
+
105
+ # 前回と異なる値ならカウントを0にする。
106
+
107
+ cnt = 0
108
+
109
+ curr_value = value
110
+
111
+
112
+
113
+ if cnt == N and value == 1:
114
+
115
+ # N個連続 かつ 値が1の場合ループ終了
116
+
117
+ print(i - N)
118
+
119
+ break
120
+
121
+ ```

1

d

2019/04/16 07:15

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- i = 1
17
+ i = 0
18
18
 
19
19
  for k, g in groupby(lst):
20
20
 
@@ -33,6 +33,14 @@
33
33
 
34
34
 
35
35
  i += len(g)
36
+
37
+ ```
38
+
39
+
40
+
41
+ ```output
42
+
43
+ 8
36
44
 
37
45
  ```
38
46