FireDrago

Lv0 - 삼각형의 완성 (2) (자바) 본문

코딩테스트/프로그래머스

Lv0 - 삼각형의 완성 (2) (자바)

화이용 2023. 6. 17. 22:39

문제 설명

선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 

나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요.

입출력 예

sides result
[3,6] 5
[11,17] 13

 

생각정리

 

sides[] 로 3,3 이 주어진 경우 나머지 한 변의 최소길이와 최대길이

 

1. 첨부한 이미지를 보면 삼각형이 성립되는 경우는 나머지 한변이 1 ~ 6 인 경우임을 알 수 있다. 

 (문제의 조건에서 나머지 변은 자연수임을 밝히고 있다.)

 

2. 최소값은 주어진 두 변의 차 보다 1 크고 , 최대값은 두 변의 합이다. 

 따라서 두변의 합 - 두변의 차 -1 만 해주면 나머지 한변의 경우의 수는 쉽게 구할 수 있게된다.

class Solution {
    public int solution(int[] sides) {
        int plusValue = Math.abs(sides[0]-sides[1]); // 대소모르니 절대값 처리
        int minusValue = sides[0]+sides[1];

        return minusValue - plusValue -1;
        // 두 변의 차+1 부터 시작하므로 -1 빼줌
    }
}

다소 쉬운 문제라 정리를 하지 않으려 했는데 생각과정이 꽤 길었기 때문에 정리하기로 했다.

 

 

'코딩테스트 > 프로그래머스' 카테고리의 다른 글

Lv0 - 직사각형 넓이 구하기  (0) 2023.06.18
Lv0 - OX 퀴즈  (0) 2023.06.17
Lv0 - 소인수분해  (0) 2023.06.13
Lv0 - 중복문자 제거 (자바)  (0) 2023.06.12
Lv0 - 공던지기 (자바)  (0) 2023.06.08