본문 바로가기
JAVA/프로그래머스

[프로그래머스/자바] Lv.0 삼각형의 완성조건(2)

by 동백05 2023. 7. 14.
import java.util.Arrays;
class Solution {
    public int solution(int[] sides) {
        int answer = 0;
        Arrays.sort(sides);
        int min=sides[1]-sides[0]+1;
        int max=sides[0]+sides[1]-1;
        for(int i=min;i<=max;i++){
            answer++;
        }

        return answer;
    }
}

문제를 제출하고 보니 for문을 돌려서 답을 내는 것은 비효율적이라고 판단하였다. 그래서 생각해 낸 방법은, 해당 for문은 결국 min에서부터 max까지의 숫자의 개수 이기때문에 식으로 나타내면 max-min+1이다. 이것을 정리하면 (제시된 두 변 중 작은 변의 길이)*2-1이 된다.

//sort한 경우
Arrays.sort(sides);
answer=sides[0]*2-1;

//Math.min을 사용한 경우
int min=Math.min(sides[0],sides[1]);
answer=min*2-1;

 

댓글