코딩_Python(Level.0)

[Level.0] 삼각형의 완성조건(2)

Hong's_Computer 2026. 3. 20. 13:13
반응형

문제 설명: 선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.

  • 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.

삼각형의 두 변의 길이가 담긴 배열 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