알고리즘, 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);