Programmers_LV0_연속된 수의 합

jkky98·2023년 2월 27일
0

CodingTraining

목록 보기
18/61

입출력 예시를 보면 num이 홀수 일때, total을 num으로 나눈 값이 가운데로 들어오는 것을 볼 수 있다. 그 후 양옆의 수를 확장해나가면 되고 짝수일때는 가운데 오는 수 두개를 먼저 설정한 후 확장하면 된다. 입출력 예시를 보고 처음 아이디어만 잘 설계하면 쉽게 풀 수 있는 문제

def solution(num, total):
    list_t = [0] * num
    if num % 2 == 1:
        cent = int(total / num)
        cent_ind = num // 2
        list_t[cent_ind] = cent
        
        for i in range(num // 2):
            list_t[cent_ind - (i+1)] = cent - (i+1)
            list_t[cent_ind + (i+1)] = cent + (i+1)
        
    elif num % 2 == 0 :
        left = total // num
        right = total // num + 1
        left_ind = int(num / 2 - 1)
        right_ind = int(num / 2)


        list_t[left_ind] = left
        list_t[right_ind] = right
        
        for i in range(int(num / 2 - 1)):
    
            list_t[left_ind - (i+1)] = left - (i+1)
            list_t[right_ind + (i+1)] = right + (i+1)
            
    return list_t


profile
자바집사의 거북이 수련법

0개의 댓글