Today
Total
07-05 02:35
관리 메뉴

T-coding

백준 3186 소변기 / Python 본문

Baekjoon

백준 3186 소변기 / Python

Tcoding 2023. 3. 20. 16:21
728x90
728x90

https://www.acmicpc.net/problem/3186

 

3186번: 소변기

입력의 첫 번째 줄은 세 정수 K, L, N (1 ≤ K, L ≤ 1000, 1 ≤ N ≤ 10,000)이 있다. 두 번째 줄은 0과 1로 이루어진 길이 N의 수열이 주어진다. 이것은 주어진 시간에 센서가 기록하는 데이터를 나타낸다

www.acmicpc.net

 

 

코드

더보기
import re

k, l, n = map(int, input().split())
s = input()
arr = [st.end() - 1 for st in re.finditer('1' * k, s)]
ans = []
if len(arr) == 0:
    print("NIKAD")
    exit()

for i in range(len(arr) - 1):
    if s[arr[i] + 1: arr[i + 1]].find('0' * l) != -1:
        ans.append(s[arr[i] + 1: arr[i + 1]].find('0' * l) + l + arr[i] + 1)

if s[arr[len(arr) - 1] + 1:].find('0' * l) != -1:
    ans.append(s[arr[len(arr) - 1] + 1:].find('0' * l) + l + arr[len(arr) - 1] + 1)
else:
    ans.append(s.rfind('1') + 1 + l)

for a in ans:
    print(a)
728x90
300x250