Post

[Programmers] #120889 - 삼각형의 완성조건 (1) [Java][C++][Python]

세 선분의 길이로 삼각형을 만들 수 있는지 판별하는 문제.

[Programmers] #120889 - 삼각형의 완성조건 (1) [Java][C++][Python]

문제 링크


1. 아이디어

세 변을 오름차순으로 정렬하면 가장 긴 변은 마지막 원소가 된다. 삼각형이 되려면 가장 긴 변이 나머지 두 변의 합보다 짧아야 하므로, 정렬 후 sides[0] + sides[1] > sides[2]가 성립하면 1, 아니면 2를 반환한다.


2. 복잡도

접근시간공간
풀이$O(1)$$O(1)$

3. 코드

풀이 [Java][C++][Python]

1
2
3
4
5
6
7
8
import java.util.*;

class Solution {
    public int solution(int[] sides) {
        Arrays.sort(sides);
        return sides[0] + sides[1] > sides[2] ? 1 : 2;
    }
}
1
2
3
4
5
6
7
#include <bits/stdc++.h>
using namespace std;

int solution(vector<int> sides) {
    sort(sides.begin(), sides.end());
    return sides[0] + sides[1] > sides[2] ? 1 : 2;
}
1
2
3
def solution(sides):
    sides.sort()
    return 1 if sides[0] + sides[1] > sides[2] else 2

This post is licensed under CC BY 4.0 by the author.