728x90

N값이 작아 조합으로 풀었다. 89%에서 계속 에러가 떴는데 조합 선언 시 오류가 있었다.

import sys
from itertools import combinations
 
def check(k,num):
 
    answer = 0
 
    for i in range(0,len(k)-1):
 
        if k[i][1]>k[i+1][0]:
            return answer
        else:
            if k[i][1]>=num:
                return answer
            else:
                answer += k[i][2]
 
 
    if k[-1][1]<=num:
        answer += k[-1][2]
 
 
    return answer
 
 
 
 
num = int(input())
 
k = [ ]
 
for i in range(num):
    temp = (list(map(int,sys.stdin.readline().rstrip().split(" "))))
 
 
    k.append([i,temp[0]+i,temp[1]])
 
 
 
answer = [ ]
 
for i in range(1,num+1):    
 
    temp = list(combinations(k,i))
 
    for j in range(0,len(temp)):
 
        answer.append(check(temp[j],num))
 
print(max(answer))
 
 
728x90

+ Recent posts