Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 자동화
- DNS
- workflow
- TLS
- tcp
- certbot
- https
- gitgub actions
- 이미지 포맷 변경
- 무중단
- 브라우저
- aws
- 인증서
- nginx
- SSH
- 배포
- nextJS
- pm2
- 로드 밸런싱
- ec2
- SSL
- webp
- CI
- 성능 개선
- 검색엔진최적화
- 이미지 압축
- 렌더링 과정
- 이미지 최적화
- 리버스 프록시
- 3-Way HandShake
Archives
- Today
- Total
개발일기
[JavaScript]삼각형의 완성조건 (2) 본문
문제 설명
선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
- 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항
- sides의 원소는 자연수입니다.
- sides의 길이는 2입니다.
- 1 ≤ sides의 원소 ≤ 1,000
입출력 예
sides | result |
[1, 2] | 1 |
[3, 6] | 5 |
[11, 7] | 13 |
풀이
function solution(sides) {
var answer = 0;
// (11 - 7) ~ 11 or (11 + 1) ~ (11 + 7 - 1)
const min = Math.min(...sides)
const max = Math.max(...sides)
for(let i = max - min + 1; i <= max; i++){
answer += 1
}
for(let i = max +1; i<= max + min - 1; i++){
answer += 1
}
return answer;
}
풀이 설명
수학문제는 역시 너무 어렵다. 수학적인 부분도 생각해야 되고, 코드도 생각해야 되고 머리가 복잡 했다. 입출력 예시를 보고 코드의 주석과 같이 하나의 공통된 공식?을 만들어서 코드로 구현 했다.(입출력 예 #3) 풀어 보자.
1. sides 배열에서 큰 변과 작은 변을 Math.max()와 Math.min()을 사용하여 구한다.
2. for문을 사용하여 (max - min + 1) ~ max 사이의 값을 반복하면서 answer에 1을 더한다.(가장 긴 변이 max인 경우)
3. for문을 사용하여 (max + 1) ~ (max + min - 1) 사이의 값을 반복하면서 answer에 1을 더한다.(나머지 한 변이 가장 긴 변인 경우)
4. 될 수 있는 변의 개수를 담은 answer을 리턴한다.
'Algorithm' 카테고리의 다른 글
[JavaScript] 외계어 사전 (3) | 2024.07.24 |
---|---|
[JavaScript] 직사각형 넓이 구하기 (4) | 2024.07.24 |
[JavaScript] 구슬을 나누는 경우의 수 (0) | 2024.07.18 |
[JavaScript] 영어가 싫어요 (0) | 2024.07.18 |
[JavaScript] 문자열 계산하기 (0) | 2024.07.16 |