We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
fromitertoolsimportcombinationsdefmaximumPerimeterTriangle(sticks):# get rid of multiple identical trianglestriangles=set((cforcincombinations(sticks,3)))max_triangles=[]fortintriangles:t=tuple(t)# get rid of degenerated trianglesifany((t[0]+t[1]<=t[2],t[1]+t[2]<=t[0],t[0]+t[2]<=t[1],)):continue# Find the ones of longest perimeterelifnotmax_trianglesorsum(t)==sum(max_triangles[0]):max_triangles.append(sorted(t,reverse=True))elifsum(t)>sum(max_triangles[0]):max_triangles=[sorted(t,reverse=True)]# Discriminate by longest edgecandidates=[tfortinmax_trianglesift[0]==max_triangles[0][0]]ifnotcandidates:return[-1]eliflen(candidates)==1:returnsorted(candidates[0])else:# Discriminates by longest smallest edgereturnsorted(candidates,key=lambdax:x[2],reverse=True)[0]
Cookie support is required to access HackerRank
Seems like cookies are disabled on this browser, please enable them to open this website
Maximum Perimeter Triangle
You are viewing a single comment's thread. Return to all comments →