본문 바로가기
코딩테스트/programming_JAVA

[Java] 프로그래머스_120868 : 삼각형의 완성조건 (2)

by prometedor 2023. 9. 9.

Math.max, Math.min 이용하기

 

Math.max(숫자1, 숫자2): 숫자1과 숫자 2 중에 큰 수 반환
Math.min(숫자1, 숫자2): 숫자1과 숫자 2 중에 작은 수 반환

 

https://school.programmers.co.kr/learn/courses/30/lessons/120868?language=java 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

class Solution {
    public int solution(int[] sides) {
        int answer = 0;
        int sideMax = 0;
        int side = 0;
        
        sideMax = Math.max(sides[0], sides[1]);
        for (int i = sideMax; i < sides[0] + sides[1]; i++) {
            answer++;
        }
        side = Math.min(sides[0], sides[1]);
        for (int i = sideMax - side + 1; i < sideMax; i++) {
            answer++;
        }
        
        return answer;
    }
}

 

 

나머지 한 변의 길이가 가장 긴 변일 경우의 변수를 sideMax 로,

그렇지 않은 경우의 나머지 한 변의 길이를 나타내는 변수를 side 로 설정

 

예2) [3, 6] 일 경우

 

주어진 sides[0] 과 sides[1] 중에 큰 변을 sideMax 라고 하면  6이 sideMax 가 됨

sideMax 가 3 + 6 보다 작아야 하므로 answer 에 sideMax인  6부터 9보다 작을 때까지의 개수를 카운트하여 저장 (7, 8, 9)

 

주어진 sides[0] 과 sides[1] 중에 작은 변을 side 라고 하면  3이 side 가 됨 (sideMax 가 가장 긴 변일 경우)

sideMax 에서 side 를 뺀 값인 6 - 3 보다는 크고 sideMax 보다 작아야 하므로 sideMax 인 6 보다 작아야 하므로 answer 에 3보다 크고 6보다 작은 값을 카운트 하여 저장 (4, 5)