Tiny Bunny
본문 바로가기
Algorithm/Python

[SWEA #9386] 연속한 1의 개수

by nowag 2024. 2. 2.

문제

N개의 0과 1로 이루어진 수열에서 연속한 1의 개수 중 최대값을 출력하는 프로그램을 만드시오.

 

입력

첫 줄에 테스트케이스 개수 T, 다음 줄부터 테스트케이스별로 첫 줄에 수열의 길이 N, 다음 줄에 N개의 0과1로 구성된 수열이 공백없이 제공된다.
1<=T<=10, 10<=N<=1000


출력
#과 테스트케이스 번호, 빈칸에 이어 답을 출력한다.

 

입력 예

3
10
0011001110
10
0000100001
10
0111001111


출력 예
#1 3
#2 1
#3 4

 

내가 쓴 코드

T = int(input())
for t in range(T):
    N = int(input())                # N : 수열의 길이
    a = list(map(int, input()))     # a : N개의 0과 1로 구성된 수열
    c = []                          # c : cnt 모으는 리스트
    cnt = 0                         # 연속한 1의 개수

    for i in range(N):
        if a[i] == 0:
            if cnt > 0:
                c.append(cnt)
            cnt = 0
        else:                       # i == 1
            cnt += 1
            if i == N-1:
                c.append(cnt)
    c_max = c[0]                    # 연속한 1의 개수 중 최대값 구하기
    for cm in c:
        if cm > c_max:
            c_max = cm

    print(f'#{t+1} {c_max}')

 

출력 결과

 

728x90
반응형