선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.
def solution(sides):
answer = 2
maxside = max(sides)
sumoftwo = sum(sides)-maxside
if (sumoftwo >maxside):
answer = 1
return answer
사이드 3개 중에서 가장 긴변을 먼저 고르고, 나머지 두 변의 합은 전체 합에서 해당 변을 빼서 계산한다.
긴변의 길이와 나머지 두변의 길이 합을 비교하고 결과를 도출한다.
여전히 코드는 번잡하고 길다 이해하기 쉽게 더 짧게 쓸 수 있는데 아쉽다
def solution(sides):
return 1 if max(sides) < (sum(sides) - max(sides)) else 2
내가 여섯줄에 걸쳐서 짠 코드를 단 한줄만에.. 짜버린 코드ㅋㅋㅋ
def solution(sides):
sides.sort()
return 1 if sides[0]+sides[1]>sides[2] else 2
응.. sorting은.. 생각 안했다.. 생각이 안났다
이게 제일 쉬운 방법이었는데 ㅋㅋ... 세상에나
def solution(sides):
a,b,c = sides
S = a+b+c
if S>2*a and S>2*b and S>2*c:
return 1
else:
return 2
처음에 보고 이해가 잘 안갔는데 잠시 쳐다봤더니 이해가 간다 max를 빼고 합을 구한게 아니라 전체합을 구해서 비교하는거였음 max가 뭔지 모르기도 하고, 이 경우에는 3개를 다 비교하게 되어있으니 and로 이어서 조건문을 달아준것
흠..