[알고리즘] 백준 - 블로그

June·2021년 8월 21일
0

알고리즘

목록 보기
240/260

백준 - 블로그

내 풀이

N, X = map(int, input().split())
visitors = list(map(int, input().split()))
visitors.append(-1)
max_visitor = 0
max_visitor_day_count = 0

left = 0
right = 0
cur_sum = 0

while right < left + X:
    cur_sum += visitors[right]
    right += 1

while right < len(visitors):
    if cur_sum > max_visitor:
        max_visitor = cur_sum
        max_visitor_day_count = 1

    elif cur_sum == max_visitor:
        max_visitor_day_count += 1

    cur_sum -= visitors[left]
    left += 1
    cur_sum += visitors[right]
    right += 1

if max_visitor == 0:
    print("SAD")
else:
    print(max_visitor)
    print(max_visitor_day_count)

슬라이딩 윈도우 문제를 연습을 하고 싶어서 풀었다. 최근에 쳤던 코테 문제와 유사하다. 마지막에 인덱스가 하나 초과하는 문제로 시간을 많이 소비했는데, 예제를 작성해보고하나 오버하는경우에는 그냥 배열에 패딩을 붙여주자.

0개의 댓글

관련 채용 정보