코딩 공부/프로그래머스

(프로그래머스) Lv.0 삼각형의 완성조건(1)

챠나 2023. 4. 12. 00:24

[문제설명]


class Solution {
    public int solution(int[] sides) {
        int answer =0;
        int a= 0;
        int b= 0;
        int c =0;

        for (int i=0; i<sides.length; i++) {
            a = Math.max(Math.max(sides[i],sides[i+1]),sides[i+2]);
            b = sides[i+1];
            c = sides[i+2];
        }
        if (a<b+c) {
            answer = 1;
        } else {
            answer = 2;
        }
        return answer;
    }
}

말도 안되는 이상한 코드인것 같지만..

내 생각으로는 Math.max함수를 이용하여 sides[0] 번째 숫자와 sides[1]번째 숫자를 비교하여 큰수 그리고 그 값에서 나온 큰 수와 sides[2] 중에 큰수를 비교하는 함수를 이용했다.

사실 코드가 저게 맞는 것 같지 않은 엉터리 코드 같다..

import java.util.Arrays;
        class Solution {
            public int solution(int[] sides) {
                int answer =0;
                Arrays.sort(sides);

                if(sides[2]<sides[0]+sides[1]) {
                    answer = 1;
                } else {
                    answer = 2;
                }
                return answer;
            }
        }

결국 고민하고 구글링 한 후 얻은 답은 저것...

Arrays.sort(); 함수를 써서 오름차순 정렬을 한 뒤 

인덱스를 비교한 것이었다.

진짜 똑똑하다....

내 생각과 답지에서 구현한 논리는 똑같았는데 내가 아직 코드를 짜는 것에 있어 개념이 제대로 박혀 있는 것 같지 않다.

속상하다.