
반응형
삼각형은 세 개의 선분이 있어야 합니다 그리고 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야
한다는 것입니다
삼각형의 조건을 함수로 만들어 보고자 합니다
제가 먼저 생각한 순서는 이렇습니다
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 |