본문 바로가기
Algorithm(CodeTree, Python)/완전탐색3

[코드트리 상황을 일일이 가정해보고 진행하는 완전탐색] 원소 값들의 최대 합 Python

by kurooru 2022. 12. 30.
# n, m 입력
n, m = map(int, input().split())
# num_list 입력
num_list = list(map(int, input().split()))

# 함수들
# calc(start_idx)
def calc(start_idx):
    
    # temp_list
    temp_list = num_list[:]

    # curr_idx, curr_sum
    curr_idx, curr_sum = start_idx, 0

    # m 번의 움직임
    for _ in range(m):
        
        # 이동할 숫자 curr_sum에 담아줌
        curr_sum += temp_list[curr_idx]

        # curr_idx 바꿔줌
        curr_idx = temp_list[curr_idx] - 1
    
    # 반환
    return curr_sum

# 설계
# max_sum
max_sum = 0

# 시작 인덱스를 기준으로 완전 탐색
for i in range(n):
    # max_sum update
    max_sum = max(max_sum, calc(i))

# 출력
print(max_sum)