🤯 코딩테스트/Javscript
[자바스크립트 알고리즘 문제풀이(코딩테스트 대비)] Section 01 - 삼각형 판별하기
kangkibong
2022. 1. 8. 15:50
※ 문제
길이가 서로 다른 A, B, C 세 개의 막대 길이가 주어지면 이 세 막대로 삼각형을 만들 수 있
으면 “YES"를 출력하고, 만들 수 없으면 ”NO"를 출력한다.
▣ 입력설명
첫 번째 줄에 100이하의 서로 다른 A, B, C 막대의 길이가 주어진다.
▣ 출력설명
첫 번째 줄에 “YES", "NO"를 출력한다.
▣ 입력예제 1
6 7 11
▣ 출력예제 1
YES
▣ 입력예제 1
13 33 17
▣ 출력예제 1
NO
※ 코드
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(a, b, c) {
let answer = "YES";
let sum = a + b + c;
let max;
if (a > b) {
max = a;
} else {
max = b;
}
if (max < c) {
max = c;
}
if (sum - max <= max) {
return answer = "NO";
} else {
return answer;
}
}
console.log(solution(13, 33, 17));
</script>
</body>
</html>
※ 설명
삼각형을 만들 때 세 막대 중에서 가장 긴 막대보다 짧은 두 막대 합의 값이 더 커야한다.
먼저 세 막대의 합을 sum변수에 할당하고 세 막대 중에서 가장 긴 막대를 max에 할당하기 위해 a, b, c를 비교하여 max에 할당한다.
이후 처음에 말했던거와 같이 가장긴막대가 잛은 막대 두개의 합보다 작아야 하므로 막대 세개의 합 sum에서 가장 긴막대 max를 빼 짧은 두 막대의 합을 구하고 그 값과 긴 막대보다 작거나 같으면 삼각형이 만들어지지 않으므로 answer에 NO를 할당한 후 return 한다. 마찬가지로 그렇지 않을 경우 answer(미리 YES로 초기화된)을 return해준다.
해당 내용은 김태원님의 자바스크립트 알고리즘 문제풀이 강의를 듣고 작성한 글입니다.