[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.