Maximum Perimeter Triangle

  • + 0 comments

    python3

    def triangulate(x):
        
        a,b,c = x
        if a + b > c:
            if a + c > b:
                if b + c > a:
                    return True
        
        return False
    
    def maximumPerimeterTriangle(sticks):
        # Write your code here
        
        sides = list(combinations(sticks, 3))
        sides = sorted(sides, key=sum, reverse=True)
        sides = list(filter(triangulate, sides))
        
        if not sides:
            return [-1]
            
        valid = list({x for x in sides if sum(x) == sum(sides[0])})
        
        if len(valid) == 1:
            return sorted(valid[0])
            
        valid = sorted(valid, key=max, reverse=True)
        valid =list(filter(lambda x: max(x) == max(valid[0]), valid))
        
        if len(valid) == 1:
            return sorted(valid[0])
            
        valid = sorted(valid, key=min, reverse=True)
        valid = list(filter(lambda x: min(x) == min(valid[0]), valid))
        
        return sorted(valid[0])