![article thumbnail image](https://blog.kakaocdn.net/dn/bkJ9oI/btrECvBmiv0/N3Wsb8QPxENW1KgSYtHx70/img.jpg)
삼각형 판별하기
길이가 서로 다른 A, B, C 세 개의 막대 길이가 주어지면 이 세 막대로 삼각형을 만들 수 있으면 “YES"를 출력하고, 만들 수 없으면 ”NO"를 출력한다.
▣ 입력설명
첫 번째 줄에 100이하의 서로 다른 A, B, C 막대의 길이가 주어진다.
▣ 출력설명
첫 번째 줄에 “YES", "NO"를 출력한다.
▣ 입력예제 1
6 7 11
▣ 출력예제 1
YES
▣ 입력예제 1
13 33 17
▣ 출력예제 1
no
📌작성된 코드
function solution(a, b, c) {
let maxNum = Math.max(a, b, c); //가장긴거
let sum = a + b + c - maxNum; //총 합
if (maxNum < sum) {
return "YES";
} else {
return "NO";
}
}
console.log(solution(6, 7, 11));
가장 중요했던건 '삼각형의 조건'이다.
삼각형은 가장 긴 변의 길이가 다른 두 변의 길이의 합보다 작아야 삼각형이 정립된다.
예를들어
a=5 b=5 c=6 이라는 가정하에
세 수를 모두 더하면 16이고, 그 총합계에서 가장 큰 수(6)을 빼면 10이라는 숫자가 나오기때문에
결과값과 6(세 수 중 가장 큰 수)을 비교해서 세 가지 막대로 삼각형을 만들 수 있으면
'yes' 없으면 'no'로 나타내주면 되는 것.
a, b, c의 숫자중 어떤게 가장 큰 수인지 모르기때문에
a + b + c를 모두 더 한 합계를 sum변수로 지정.
조건문을 통해서 가장 큰 수인 max를 구했고,
sum - max = 결과값 저장,
나온 결과값과 max 비교
let sum = a + b + c, max, answer, result
변수를 지정할때 쉼표를 찍어주면 일일히 변수를 다 지정하지 않아도
한줄 선언이 가능하다는 점.
📍배열로 변환 후, 조건문 사용
function solution(a, b, c) {
let newArr = Array.from(arguments);
let target = newArr[0];
for (let i = 1; i < newArr.length; i++) {
if (target < newArr[i]) {
target = newArr[i];
}
}
let sum = a + b + c - target;
if (sum > target) {
return "YES";
} else {
return "NO";
}
}
console.log(solution(6, 7, 14));
'알고리즘' 카테고리의 다른 글
[알고리즘 문제] 4번 (0) | 2022.05.25 |
---|---|
[알고리즘 문제] 3번 (0) | 2022.05.25 |
[알고리즘 문제] 1번 (0) | 2022.05.24 |
[알고리즘 문제] Array (배열) (0) | 2022.03.14 |
[알고리즘 문제] Function(함수) - 데이터 반환하기(2) (0) | 2022.03.14 |