본문 바로가기

스터디 1일 1커밋

240229 [SWEA] 배열_3분할

https://swexpertacademy.com/main/talk/solvingClub/problemView.do?solveclubId=AYzyPVaq3yYDFASg&contestProbId=AXXvAWRqlTMDFAUT&probBoxId=AY0mJFq6JdsDFASg&type=USER&problemBoxTitle=%EA%B8%B0%EC%B4%88+%EC%97%B0%EC%8A%B52&problemBoxCnt=11

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


나의 코드

T= int(input())
for t in range(T):
    N = int(input())
    data = list(map(int, input().split()))

    max_list = []
    min_list = []
    sum_v = 0
    for i in range(1,N-1):
        for j in range(i+1, N):
            # print(sum(data[:i]), sum(data[i:j]), sum(data[j:]))
            max_v = max(sum(data[:i]), sum(data[i:j]), sum(data[j:]))
            max_list.append(max_v)
            min_v = min(sum(data[:i]), sum(data[i:j]), sum(data[j:]))
            min_list.append(min_v)

    # print(max_list, min_list)
    result = 9999999
    for k in range(len(max_list)):
        if result > max_list[k] - min_list[k]:
            result = max_list[k] - min_list[k]
    print(f'#{t+1} {result}')

 

결과


인덱스만 잘 생각해서 정리하면 분할은 쉬운 것 같다. 강사님이 알려주신 방법으로 인덱스로 분할하기 성공!

이제는 데이터를 읽으면서 계산하는 방법을 생각하면서 코드를 짧게 짜는 연습을 해야 할 것 같다.