본문 바로가기
카테고리 없음

[프로그래머스]삼각형의 완성조건 (1) - java, python

by skysline 2023. 2. 23.
반응형

`삼각형의 완성조건 (1)`

문제 설명

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

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

삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다.

세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.

입출력 예


입출력 예 #1

  • 가장 큰 변인 3이 나머지 두 변의 합 3과 같으므로 삼각형을 완성할 수 없습니다. 따라서 2를 return합니다.

입출력 예 #2

  • 가장 큰 변인 6이 나머지 두 변의 합 5보다 크므로 삼각형을 완성할 수 없습니다. 따라서 2를 return합니다.

입출력 예 #3

  • 가장 큰 변인 222가 나머지 두 변의 합 271보다 작으므로 삼각형을 완성할 수 있습니다. 따라서 1을 return합니다.

java code

class Solution {
     public int solution(int[] sides) {
        int max = 0;
        int sum = 0;
        for (int i = 0; i < sides.length; i++) {
            if (sides[i] > max) {
                max = sides[i];
            }
            sum += sides[i];
        }
            if (max * 2 < sum) {
                return 1;
            } else {
                return 2;
             }
    }
}
  1. 가장 긴 변의 길이와 세 변의 길이의 합을 구할 변수 max와 sum을 초기화합니다.
  2. for문을 이용해 sides 배열의 요소를 차례로 탐색합니다.
  3. 탐색 중인 요소가 max보다 크면 max에 그 값을 대입합니다.
  4. sum에 탐색 중인 요소의 값을 더합니다.
  5. for문이 끝나면, 가장 긴 변의 길이인 max가 다른 두 변의 길이의 합인 sum - max보다 작은지 비교합니다.
  6. max * 2가 sum - max보다 작으면 삼각형을 만들 수 있으므로 1을 반환합니다.
  7. 그렇지 않으면 삼각형을 만들 수 없으므로 2를 반환합니다.

python code

def solution(sides):
    answer = 0
    for i in sides:
        max_num = max(sides)
        sum_num = sum(sides) - max_num
    if sum_num > max_num:
        return 1
    else:
        return 2

반응형

댓글