Problem From.
https://leetcode.com/problems/largest-perimeter-triangle/
오늘 문제는 어제 문제가 애매했어서 그런지 딱 떨어지는 쉬운 문제로 나왔다.
짧은 지문에서 볼 수 있듯이 주어진 배열에서 만들 수 있는 삼각형의 가장 큰 둘레의 길이를 반환하고, 삼각형이 만들어지지 않으면 0 을 반환하도록 하는 문제였다.
문제는 아주 간단한 아이디어로 풀었는데, 주어진 배열을 큰 수 부터 오도록 정렬하고, 앞에서부터 숫자를 3개씩 보면서 삼각형이 만들어지면 둘레의 길이를 반환하도록 하였다.
굳이 큰 수 부터 오도록 정렬한 이유는 그렇게 해야 실행시간이 조금이라도 짧아지지 않을까 하는 생각 때문이었다.
class Solution {
fun largestPerimeter(nums: IntArray): Int {
nums.sortDescending()
for(i in 0 until nums.size - 2) {
if(nums[i] < nums[i+1] + nums[i+2]) return nums[i] + nums[i+1] + nums[i+2]
}
return 0
}
}
갑자기 내 특기분야인 수학이 나와서 반가웠던 문제 👋