반응형
문제 설명: 선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
- 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항
- sides의 원소는 자연수입니다.
- sides의 길이는 2입니다.
- 1 ≤ sides의 원소 ≤ 1,000
문제 해결
def solution(sides):
return sum(sides) - max(sides) + min(sides) - 1
def solution(sides):
return 2 * min(sides) - 1
논리 체크: 삼각형의 나머지 한 변을 x, 주어진 두 변을 a, b라고 할 때 x의 범위는 다음과 같다.
- b가 가장 긴 변인 경우: b < a + x → x > b - a
- x가 가장 긴 변인 경우: x < a + b
따라서 b - a < x < a + b 이며 정수 x의 개수는 (a + b) - (b - a) - 1 = 2a - 1이 됩니다. 결국 sum(sides) - max(sides) + min(sides) - 1은 (a + b) - b + a - 1 = 2a - 1과 동일합니다. 즉, 결과적으로 가장 작은 변의 길이에 2를 곱하고 1을 뺀 값과 같다.
반응형
'코딩_Python(Level.0)' 카테고리의 다른 글
| [Level.0] 그림 확대 (0) | 2026.03.20 |
|---|---|
| [Level.0] 구슬을 나누는 경우의 수 (0) | 2026.03.20 |
| [Level.0] 영어가 싫어요 (0) | 2026.03.20 |
| [Level.0] 수열과 구간 쿼리(2) (0) | 2026.03.20 |
| [Level.0] 공 던지기 (0) | 2026.03.20 |