-
코딩테스트 입문_삼각형의 완성조건(1)_Math.max, ArrayList자바/프로그래머스_코딩테스트 2024. 7. 19. 09:06
https://school.programmers.co.kr/learn/courses/30/lessons/120889
문제 설명 :
더보기선분 세 개로 삼각형을 만들기 위해서는 다음 조건 만족해야 함.
- 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 함.
삼각형의 세 변의 길이가 담긴 배열 sides 이 매개변수로 주어짐.
세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해라.
제한 사항 :
더보기- sides의 원소는 자연수
- sides의 길이는 3
- 1 <= sides의 원소 <= 1,000
입출력 예
sides result [1, 2, 3] 2 [3, 6, 2] 2 [199, 72, 222] 1 1. Math.max() 함수 사용 코드
public class Solution public int solution(int[] sides) { //세 변의 길이를 변수에 저장 int a = sides[0]; int b = sides[1]; int c = sides[2]; //삼각형을 만들 수 있는지 확인하는 조건을 체크 //가장 긴 변을 찾음. int maxSide = Math.max(Max.max(a, b), c); int sumOtherTwo = a + b + c - maxSide;; // 가장 긴 변을 제외한 두 변의 합 // 삼각형을 만들 수 있는지 여부를 반환 if (maxSide < sumOtherTwo && a > 0 && b > 0 && c > 0) { return 1; //삼각형 만들 수 있음. }else { return 2; //삼각형 만들 수 없음. } } }
Math.max() :
두 개의 인자를 비교하여 최댓값을 반환하는 함수. 그러므로 Math.max(a, b, c) 사용 불가
세 개의 변수를 모두 비교할 수 있도록 'Math.max()' 함수를 중첩해서 사용해야 함. Math.max((a, b) ,c)
2. ArrayList 코드
import java.util.Arrays; class Solution { public int solution(int[] sides) { //세 변의 길이를 변수에 저장 int a = sides[0]; // 배열 sides배열에 a 대입 int b = sides[1]; // 배열 sides배열에 b 대입 int c = sides[2]; // 배열 sides배열에 c 대입 //배열 sides를 오름차순으로 정렬 Arrays.sort(sides); // 정렬 후 가장 긴 변의길이를 변수에 저장 int maxSide = sides[2]; // sides[2]는 세 변 중 가장 긴 변의 길이 //가장 긴 변을 제외한 두 변의 길이의 합을 구함. int sumOtherTwo = sides[0] + sides[1]; //삼각형을 만들 수 있는지 여부를 검사. if(maxSide < sumOtherTwo && a > 0 && b > 0 && c > 0){ //a > 0 && b > 0 && c > 0 모든 변의 길이가 양수여야 함. return 1; } else { return 2; } } }