[코딩테스트 lv0 파이썬]삼각형의 완성조건(2)

seoyeon·2023년 4월 22일
0

코딩테스트 python

목록 보기
10/11
post-thumbnail

기존에 알고 있는 변이 a, b라고 하자.(a>b)

이때, 새로 입력 받는 c가 a보다 클 수도 있고 같을 수도 있고 작을 수도 있다.

문제설명

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

가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요.

제한사항

  • sides의 원소는 자연수입니다.
  • sides의 길이는 2입니다.
  • 1 ≤ sides의 원소 ≤ 1,000

입출력 예

정답 및 풀이

i) c가 a보다 크면 대소관계는 c > a > b가 된다.

a + b > c 이므로 a + b > c > a가 된다.

즉 이때 가능한 c의 갯수는 b - 1개

ii) c가 a보다 작으면 대소관계는 a > b, a > c 가 된다.

b + c > a 이므로 b + c > a > c가 된다.

즉 이때 가능한 c의 갯수는 b - 1개

iii) c와 a가 같으면 c = a 한 가지 밖에 존재하지 않는다.

그러므로 다 합하면 (b - 1) + (b - 1) + 1 = 2 * b - 1 개가 된다.

이때 초기 조건에 따라 b는 a보다 작음

def solution(sides):
    return 2 * min(sides) - 1

출처

profile
항상 질문하는 개발자가 되고 싶습니다✋

0개의 댓글