코딩 테스트
[프로그래머스 Level 0] 삼각형의 완성조건(2)
y_flm
2025. 4. 14. 12:34
반응형
문제:
선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다.
나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항
- sides의 원소는 자연수입니다.
- sides의 길이는 2입니다.
- 1 ≤ sides의 원소 ≤ 1,000
문제 풀어보기: https://school.programmers.co.kr/learn/courses/30/lessons/120868
풀이보기
더보기
function solution(sides) {
let count = 0;
let longSide = Math.max(...sides);
let shortSide = Math.min(...sides);
for(let i = 1; i <= longSide + shortSide; i++) {
if(longSide < i) {
if(i < longSide + shortSide) count++;
} else {
if(longSide < shortSide + i) count++;
}
}
return count;
}
먼저 주어진 sides 배열에서 큰 수와 작은 수를 구별해서 각각 저장해준다.
그 다음 긴 변의 길이는 나머지 두 변의 길이보다 작아야하므로 주어진 변의 길이의 합까지 반복을 해준다.
만약 i가 longSide보다 커지면 i가 가장 긴 변이 되므로 longSide + shortSide보다 작을 때만 count 해주고,
그게 아니라면 longSide가 계속 긴 변이므로 shortSide + i보다 작을 때만 count 해주면 된다.
마지막으로 알맞게 계산된 count를 반환해주면 끝!
반응형