def solution(sides):
    answer = 0
    max_num = max(sides)	# sides의 max값
    min_num = min(sides)	# sides의 min값
    sum_num = sum(sides)	# sides의 sum값
    
    #가장 긴 변이 sides에 있을 경우
    for i in range(1, max_num+1):
        if i+min_num > max_num: 
            answer += 1
            
    #가장 긴 변이 새로운 변일 경우
    for i in range(max_num+1, sum_num):
        answer +=1
    
    return answer


🤔 문제 풀이

  • max_num = max(sides) # sides의 max값
    min_num = min(sides) # sides의 min값
    sum_num = sum(sides) # sides의 sum값
    • 삼각형을 만들 거기 때문에 모든 변에 대해서 정의 내려줬어요
  • #가장 긴 변이 sides에 있을 경우
    for i in range(1, max_num+1):
        if i+min_num > max_num: 
            answer += 1
    •  for i in range(1, max_num+1):
      • 가장 긴 변이 sides에 이미 있을 때, range 범위를 1부터 max_num+1로 해주었어요
    • if i+min_num > max_num: 
      • 만약 i+min_num이 max_num보다 크다면 answer에 +1씩 더해줄게요
        • 문제를 다시 읽어보시면 경우의 수가 적어도 2가지가 나오잖아요 그걸 충족시키기 위해서 만든 코드입니다!
  • #가장 긴 변이 새로운 변일 경우
    for i in range(max_num+1, sum_num):
        answer +=1
    • for i in range(max_num+1, sum_num):
      • 가장 긴 변이 새로운 변일 경우예요
      • 그럼 적어도 max_num+1보다 큰 숫자부터 sides의 sum 만큼이 범위가 되겠죠?
    • answer +=1
      • 그리고 그 값들을 answer에 더해주면 문제 해결!

 



+ Recent posts