반응형

삼각형은 세 개의 선분이 있어야 합니다 그리고 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 

한다는 것입니다 

 

삼각형의 조건을 함수로 만들어 보고자 합니다 

 

 

제가 먼저 생각한 순서는 이렇습니다 

 

1. int 배열에서 가장 큰 값을 구하자 

2. int 배열에서 큰 값의 index를 제외한 값들의 합을 구하자

3. 비교하여 리턴하자

 

상당히 간단한 문제입니다 

 

먼저 int 배열에서 가장 큰 값을 구하기위해 반복문을 잠시 생각했다가 접어두고 

Arrays 클래스의 sort 메서드를 사용하기로 했습니다

 

Arrays.sort ( 배열 ) 을 넣어주면 정렬되기 때문에 

int배열[배열.length-1] 이 가장 큰 값이됩니다 

 

 

이러면 1번의 가장 큰 값을 구하는것은 완료입니다 다음으로 2번째 입니다

 

반복문에서 가장 큰 값을 제외하고 합계를 저장하면 됩니다 

중요한것은 조건문 이라고 생각합니다 가장 마지막 index에 큰 값이 들어있을것이기 때문에 

 

i < sides.length-1 을 해주었습니다

 

이로써 2번의 합계를 저장했습니다

 

마지막으로 3번째 비교하여 리턴합니다 

 

나머지 두 변의 합이 answer이니까 answer가 더 커야 삼각형을 완성할 수 있기때문에 1을 리턴 하고 

아니라면 2를 리턴합니다 

 

저는 조건 하나에 두가지의 출력만 해야한다면 대부분 삼항연산자를 애용합니다 ㅎㅎ

 

간단하고 쉬운 문제였지만 기초를 항상 다지자는 마음으로 문제를 풀어봅니다 감사합니다

    public int solution(int[] sides) {
        int answer = 0;
        
        Arrays.sort(sides);

        int mx = sides[sides.length-1];

        for (int i=0; i < sides.length-1; i++){
            answer += sides[i];
        }
        answer = answer > mx ? 1 : 2;
        
        return answer;
        
    }

 

반응형

'Developer > Java' 카테고리의 다른 글

[java]프로그래머스-3진법 뒤집기  (0) 2023.06.09
[java]프로그래머스-포캣몬  (0) 2023.05.24
[java]프로그래머스-부족한 금액  (0) 2023.05.17
[java]함수형 인터페이스  (0) 2023.01.04
[java]람다식  (0) 2022.12.07
복사했습니다!