JS 알고리즘 문제풀이
삼각형 판별하기
trophy98
2023. 9. 23. 17:44
길이가 서로 다른 A, B, C 세 개의 막대 길이가 주어지면 이 세 막대로 삼각형을 만들 수 있으면 "YES"를 출력하고, 만들 수 없으면 "NO"를 출력한다.
💬 입력설명
첫 번째 줄에 100이하의 서로 다른 A, B, C 막대의 길이가 주어진다.
🟢 출력설명
첫 번째 줄에 "YES", "NO"를 출력한다.
입•출력 예제
6 7 11 | 13 33 17 |
YES | NO |
↪️ 기존풀이
function solution(a, b, c){
let answer="YES", max;
let tot=a+b+c;
if(a>b) max=a;
else max=b;
if(c>max) max=c;
if(tot-max<=max) answer="NO";
return answer;
}
console.log(solution(13, 33, 17));
📌 나의풀이
function solution(a,b,c) {
let long = Math.max(a,b,c);
let total = a + b + c;
if(total - long > long) {
return "YES"
} else {
return "NO"
}
}
console.log(solution(13,33,17))
function solution1(a,b,c) {
let number = [a,b,c].sort();
if(number[0] + number[1] > number[2]) {
return "YES"
} else {
return "NO"
}
}
console.log(solution1(6,7,11))
처음 solution 에서는 내장함수인 Math.max 함수를 사용했습니다. 기본적인 산술 연산만을 사용해서 총합과 최대값을 비교했습니다.
다음 solution1에서는 [a,b,c]의 배열을 지정함과 동시에 .sort()함수로 정렬을 하였습니다. solution 함수보다는 약간 더 많은 메모리를 사용할 가능성이 있지만, 실제로는 이 차이가 미미할 것이므로, 가독성이나 다른 측면에서 이 방식이 괜찮다고 생각하여 solution1방식도 적어보았습니다.