[SWEA] 구간합 [PYTHON]

냐항·2021년 8월 14일
0

첫 줄에 테스트 케이스 개수 T가 주어진다. ( 1 ≤ T ≤ 50 )

다음 줄부터 테스트케이스의 첫 줄에 정수의 개수 N과 구간의 개수 M 주어진다. ( 10 ≤ N ≤ 100, 2 ≤ M < N )

다음 줄에 N개의 정수 ai가 주어진다. ( 1 ≤ a ≤ 10000 )

처음엔 리스트 요소들을 정렬한 후 앞에 3개 뒤에 3개를 찾아서 빼면 될 것이라 생각했다. 아무리해도 답이 나오질 않음. 이제는 포기해야지.

더해야하는 갯수만큼 끝까지 쭉 더한 후 가장 큰 수에서 가장 작은 수를 빼면 된다.

for tc in range(1, int(input())+1):
    N, M = map(int, input().split())
    TC = list(map(int, input().split()))


    max_value = 0
    min_value = 123456

    for i in range(N-M+1):
        temp = 0
        for j in range(M):
            temp += TC[i+j]

        if temp > max_value:
            max_value = temp
        if temp < min_value:
            min_value = temp

    ans = max_value - min_value

    print('#{} {}'.format(tc, ans))

0개의 댓글