https://school.programmers.co.kr/learn/courses/30/lessons/120868
def solution(sides):
answer = 0
max_side = max(sides)
min_side = min(sides)
# sides에 있는 변(max_sides)이 가장 길 경우
for new_side in range(max_side - min_side + 1, max_side + 1):
answer += 1
# 새로운 변(new_side)가 가장 길 경우
for new_side in range(max_side + 1, max_side + min_side):
answer += 1
return answer
for
문이 기존 변의 길이가 제일 길 경우인데, 해당 길이가 나머지 두 변의 길이의 합보다 작아야 하므로, 새로운 변의 길이는 max_side - min_side + 1
부터 max_side
까지 될 수 있다.for
문에서는 나머지 한 변이 가장 길 경우인데, 그 길이는 주어진 길이보다는 커야하니 max_side + 1
부터 시작하고, 두 변의 길이의 합보다는 작아야하니 max_side + min_side - 1
까지 세어준다.def solution(sides):
return sides[0] + sides[1] - abs(sides[0] - sides[1]) - 1
x
라고 할 때, 삼각형의 조건은 |a - b| < x < a + b
이다.x
의 개수는 a + b - |a - b| - 1
개 이다.피드백은 언제나 환영입니다 :)