반응형
`삼각형의 완성조건 (1)`
문제 설명
선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다.
세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.
입출력 예 #1
- 가장 큰 변인 3이 나머지 두 변의 합 3과 같으므로 삼각형을 완성할 수 없습니다. 따라서 2를 return합니다.
입출력 예 #2
- 가장 큰 변인 6이 나머지 두 변의 합 5보다 크므로 삼각형을 완성할 수 없습니다. 따라서 2를 return합니다.
입출력 예 #3
- 가장 큰 변인 222가 나머지 두 변의 합 271보다 작으므로 삼각형을 완성할 수 있습니다. 따라서 1을 return합니다.
java code
class Solution {
public int solution(int[] sides) {
int max = 0;
int sum = 0;
for (int i = 0; i < sides.length; i++) {
if (sides[i] > max) {
max = sides[i];
}
sum += sides[i];
}
if (max * 2 < sum) {
return 1;
} else {
return 2;
}
}
}
- 가장 긴 변의 길이와 세 변의 길이의 합을 구할 변수 max와 sum을 초기화합니다.
- for문을 이용해 sides 배열의 요소를 차례로 탐색합니다.
- 탐색 중인 요소가 max보다 크면 max에 그 값을 대입합니다.
- sum에 탐색 중인 요소의 값을 더합니다.
- for문이 끝나면, 가장 긴 변의 길이인 max가 다른 두 변의 길이의 합인 sum - max보다 작은지 비교합니다.
- max * 2가 sum - max보다 작으면 삼각형을 만들 수 있으므로 1을 반환합니다.
- 그렇지 않으면 삼각형을 만들 수 없으므로 2를 반환합니다.
python code
def solution(sides):
answer = 0
for i in sides:
max_num = max(sides)
sum_num = sum(sides) - max_num
if sum_num > max_num:
return 1
else:
return 2
반응형
댓글