less than 1 minute read

1626. Best Team With No Conflicts (medium)

fail.. 푸는데 실패했다. DFS를 이용해서 풀려고 그랬는데, DP를 이용하면 쉽게 풀리는 문제였다. DFS를 이용해서는 어떻게 풀지 근무하면서 쉬는 시간에 한 번 생각해봐야겠다.

class Solution:
    def bestTeamScore(self, scores: List[int], ages: List[int]) -> int:
                                                #   Example: scores = [4,4,6,5]
                                                #              ages = [2,1,5,1]

        dp = [0]*(1+max(ages))                  #         dp = [0, 0, 0, 0, 0]       
                                                #  score_age = [(4,1), (4,2), (5,1), (6,5)]
        score_age = sorted(zip(scores, ages))
                                                #   score   age     dp
        for score, age in score_age:            #   –––––  –––––    ––––––––––––––––––
                                                #     4      1      [0, 4, 0, 0, 0, 0]
            dp[age] = score + max(dp[:age+1])   #     4      2      [0, 4, 8, 0, 0, 0]
                                                #     5      1      [0, 9, 8, 0, 0, 0]
        return max(dp)                          #     6      5      [0, 9, 8, 0, 0,15] 
                                                #                                   |
                                                #                                 return