백준 2435 파이썬 코드

    import sys
    n,k = map(int,sys.stdin.readline().split())
    my_list = list(map(int,sys.stdin.readline().split()))
    pre_fix = [0 for _ in range(n+1)]
    for i in range(0,n) :
        pre_fix[i+1] = pre_fix[i] + my_list[i]
    
    answer = -9876543210
    
    for i in range(n+1) :
        if i+k < n+1 :
            answer = max(answer, pre_fix[i+k] - pre_fix[i])
    print(answer)

    부족했던 부분

    누적합을 구할 때, 앞에 여유 칸 없이 Prefix 배열을 만들었다. 이런 이유로 Prefix의 첫번째를 빼게 되면 항상 첫번째날이 빠지게 되는 것이 확인되었다. 

    개선점

    추후 Prefix 배열을 만들 때는 첫번째 날을 예외처리하든지, 혹은 하나의 배열을 추가로 선언해서 쉽게 접근할 수 있도록 관리하는게 필요할 것 같다. 

    'CS > BOJ' 카테고리의 다른 글

    백준 1484 다이어트 파이썬  (0) 2022.02.19
    백준 12892 파이썬 문제  (0) 2022.02.14
    백준 21758 파이썬 코드  (1) 2021.10.04
    백준 2842 파이썬 문제풀이  (0) 2021.09.16
    프로그래머스 블록 이동하기 파이썬  (0) 2021.09.13

    댓글

    Designed by JB FACTORY