Daily LeetCode Challenge - 976. Largest Perimeter Triangle

Min Young Kim·2022년 10월 12일
0

algorithm

목록 보기
7/198

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
    }
}

갑자기 내 특기분야인 수학이 나와서 반가웠던 문제 👋

profile
길을 찾는 개발자

0개의 댓글