길이가 서로 다른 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방식도 적어보았습니다.
'JS 알고리즘 문제풀이' 카테고리의 다른 글
[프로그래머스] 바탕화면 정리 (0) | 2023.10.16 |
---|---|
1부터 N까지 합 출력하기 (0) | 2023.10.01 |
연필 개수 (0) | 2023.10.01 |
세 수 중 최솟값 (0) | 2023.09.23 |