-
[hackerrank] Maximum Perimeter Triangle python공부/알고리즘 2021. 9. 10. 11:41
sticks의 원소들 중 삼각형이 되는 3개의 원소들 중 가장 큰 변을가지고, 중복된 가장 큰 변을 가질때 최소길이의 변이 최대인 3개의 변을 return 해주는 문제이다.
1. sticks를 sort해주자.
2. maxIndex가 1보다 클때까지 while문을 돌려서 후보가 될 3변을 구하자. sort를 한뒤 아래와 같이 while문을 돌리면 문제의 조건과 부합하는 세변의 원소들이 answerList에 쌓이게 된다.
3. answerList의 크기가 0이면 return -1, 그렇지 않다면 answer를 return 해주자.
def maximumPerimeterTriangle(sticks): # Write your code here sticks.sort() maxIndex = len(sticks) - 1 answer = list() while maxIndex > 1: if sticks[maxIndex-2] + sticks[maxIndex-1] > sticks[maxIndex]: answer = sticks[maxIndex-2:maxIndex+1] break else: maxIndex -= 1 if len(answer) == 0: return [-1] else: return answer
728x90'공부 > 알고리즘' 카테고리의 다른 글
[hackerrank] Ice Cream Parlor python (0) 2021.09.11 [hackerrank] Candies python (0) 2021.09.10 [hackerrank] Marc's Cakewalk python (0) 2021.09.10 [hackerrank] Grid Challenge python (0) 2021.09.10 [hackerrank] Minimum Absolute Difference python (0) 2021.09.09