기본문제풀이-삼각형 판별하기

Min·2021년 1월 26일
0

CodeKata

목록 보기
2/27
post-thumbnail

문제

길이가 서로 다른 A, B, C 세 개의 막대 길이가 주어지면 이 세 막대로 삼각형을 만들 수 있
으면 “YES"를 출력하고, 만들 수 없으면 ”NO"를 출력한다.

입력설명

첫 번째 줄에 100이하의 서로 다른 A, B, C 막대의 길이가 주어진다.

출력설명

첫 번째 줄에 “YES", "NO"를 출력한다.

입력예제

6 7 11

출력예제

YES

입력예제

13 33 17

출력예제

NO

삼각형 조건

최대값이 다른 두 변수의 합보다 커야 한다.

나의 틀린 풀이

function solution(a, b, c){
    let answer="YES", max
    if(a > b) max = a
    else max = b
    if (c > max) max = c
    if(max > 나머지)
        return answer
    return "NO"
}

console.log(solution(13, 33, 17));
  • 최대값이 다른 두 변수의 합보다 같거나 작다.
    1) 최대값이 다른 두 변수의 합보다 작다.
    -> 삼각형이 될 수 없다.

2) 최대값이 두 변수의 합과 같다.
-> 두 변수가 최대값에 붙어버린다.

  • 최대값 후 나머지 값을 비교하는 코드를 생각하지 못하였다.

옳은 풀이

function solution(a, b, c){
    let answer="YES", max
    let sum = a + b + c
    if(a > b) max = a
    else max = b
    if (c > max) max = c
    if((sum - max) <= max) answer="NO"
    
    return answer
}

console.log(solution(6, 7, 11)); // YES
console.log(solution(13, 33, 17)); // NO
  • 모든 합을 구해서 최대값을 뺀게 최대값보다 크거나 같으면
    삼각형이 되지 않는다.
profile
slowly but surely

0개의 댓글