알고리즘, CS

[프로그래머스 Lv. 0] 삼각형의 완성조건 (2)

차돌박이츄베릅 2023. 6. 14. 01:10

1. 문제

https://school.programmers.co.kr/learn/courses/30/lessons/120868

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

2. 나의 풀이

2-1. 어떤 삼각형 수학 공식을, 어떻게 적용해서 푸는건지 문제가 전혀 감도 잡히지 않아서

그냥 입출력 예를 보고 규칙 찾아서 멋대로 풀었는데 통과가 됐다.... 이게 왜 돼...?

function solution(sides) {
    var answer = 0;
    
    let maxSide = sides[0];
    let minSide = sides[1];
    if(sides[0] < sides[1]) {
       maxSide = sides[1];
       minSide = sides[0];
    }
    
    answerMax = minSide;
    answerMin = minSide-1;
    
    answer = answerMax + answerMin;
    
    return answer;
}

 

2-2. 리팩토링

function solution(sides) {
    var answer = 0;
    
    let minSide = sides[0] < sides[1] ? sides[0] : sides[1];
    
    answer = minSide + minSide - 1 ;
    
    return answer;
}

 

3. 다른 사람 풀이

내림차순 정렬해서 최대값 사용

function solution(sides) {

    sides.sort((a,b) => b - a);

    return sides[1] + sides[1] -1;
}

 

 

4. 배운 점

최대값, 최소값 찾기

let numMax = Math.max(...sides);
let numMin = Math.min(...sides);