문제
영준이는 당근 크기 선별기를 이용해 수확한 순서대로 당근의 크기를 기록하였다. 이 당근 선별기에는 특별한 기능이 있는데 연속으로 당근의 크기가 커진 경우 그 개수를 알려준다. 당근의 크기가 수확한 순서로 주어질 때, 선별기가 알려준 연속으로 커지는 당근의 갯수는 최대 얼마인지 확인하기 위한 프로그램을 만드시오. 연속으로 커지지않는 경우 구간의 최소 길이는 1이다.
N개의 당근을 수확하며, 당근의 크기 C는 1부터 10까지의 정수로 정해진다.
5<=N<=1000, 1<=C<=10
입력
첫 줄에 테스트케이스의 개수 T, 다음 줄 부터 테스트케이스별로 첫 줄에 당근 개수 N, 다음 줄 당근의 크기 C를 의미하는 N개의 정수가 주어진다.
출력
#테스트케이스번호와 연속으로 커지는 당근 개수의 최대값을 출력한다.
내가 쓴 코드
T = int(input())
for t in range(T):
N = int(input()) # 당근 개수
arr = list(map(int,input().split())) # 당근 크기 리스트
bef = arr[0] # 이전 값 선언
cnt = 1 # 연속으로 커지는 당근 수
b = [] # 연속으로 커지는 당근 수 저장 리스트
b_max = 0 # b 중 최대값
for n in range(1, N):
if arr[n] == bef+1: # 당근 수가 이전 당근 수보다 1 큰 경우: 연속으로 커진 경우
cnt += 1
bef = arr[n]
if cnt >= 2:
b.append(cnt)
else:
if arr[n] == N-1:
b.append(cnt)
cnt = 1
bef = arr[n]
# 연속한 당근 수 중 최대값 구하기
if cnt > b_max:
b_max = cnt
# 연속 당근 없는 경우
if len(b) == 0:
b.append(1)
print(f'#{t+1} {b_max}')
출력 결과

728x90
반응형
'Algorithm > Python' 카테고리의 다른 글
| [BOJ #1181] 단어 정렬 (0) | 2024.02.02 |
|---|---|
| [SWEA #16268] 풍선팡2 (1) | 2024.02.02 |
| [SWEA #9386] 연속한 1의 개수 (1) | 2024.02.02 |
| [SWEA #1979] 어디에 단어가 들어갈 수 있을까 (0) | 2024.02.02 |
| [BOJ #23968] 알고리즘 수업 - 버블 정렬 1 (1) | 2024.02.01 |