| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 코딩테스트
- 개발 공부
- 자바스크립트
- 입문
- 공식문서
- next.js
- CSS
- TypeScript
- 자료구조
- 이벤트
- useRef
- 프로그래머스
- react
- 국비지원교육
- useMemo
- 메가바이트스쿨
- JavaScript
- 비전공자
- 내일배움카드
- 프론트엔드
- GIT
- 개발자취업부트캠프
- 리액트
- styled-components
- 패스트캠퍼스
- MegabyteSchool
- 모던 딥 다이브 자바스크립트
- 알고리즘
- 모던 자바스크립트 딥 다이브
- Github
Archives
- Today
- Total
개발 기록 남기기✍️
[프로그래머스] 삼각형의 완성조건 (1) 본문
🗒️ 문제 설명
선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
- 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.
⚠️ 제한 사항
- sides의 원소는 자연수입니다.
- sides의 길이는 3입니다.
- 1 ≤ sides의 원소 ≤ 1,000
👀 입출력 예
| sides | result |
| [1, 2, 3] | 2 |
| [3, 6, 2] | 2 |
| [199, 72, 222] | 1 |
❇️ 나의 풀이
- 배열을 .sort()로 오름차순으로 재배열한다.
- 이 때, [1,3,11]이 있다면 앞글자를 기준으로 재배열하기 때문에 [1, 11, 3]이 된다.
- 이에 대한 방법) sort() 함수의 파라미터로 함수를 정의
- 이 함수는 a, b 두 개의 파라미터를 입력받는다.
- a > b이면 1, a == b이면 0, a < b이면 -1을 리턴하여 주어진 배열을 오름차순으로 정렬한다.
- 해당 배열의 첫번째 값과 두번째 값을 더한 값이 세번 째 값보다 큰지를 if문으로 비교하여 알맞는 값을 return한다.
function solution(sides) {
var newArr = [...sides];
newArr.sort((a,b)=>{
if(a > b) return 1;
else if (a < b) return -1;
else return 0;
});
if(newArr[0] + newArr[1] > newArr[2]) return 1;
else return 2;
}
✍️ 리뷰
✔️ if문 대신에 삼항연산자를 사용하면 한줄로 표현 가능하다!
✔️ sort 안에 들어가는 함수를 저렇게 간단하게 표현할 수 있다니! 그럼 화살표 함수로 표현해도 될 듯 하다.
sides.sort((a,b)=>a-b);
💟 본받고 싶은 코드
function solution(sides) {
sides.sort((a,b)=>a-b);
return sides[0] + sides[1] > sides[2] ? 1 : 2;
}'코딩 테스트 연습' 카테고리의 다른 글
| [프로그래머스] 짝수 홀수 개수 (0) | 2022.12.22 |
|---|---|
| [프로그래머스] 배열 자르기 (0) | 2022.12.21 |
| [프로그래머스] 짝수는 싫어요 (0) | 2022.12.21 |
| [프로그래머스] 아이스 아메리카노 (0) | 2022.12.21 |
| [프로그래머스] 배열 원소의 길이 (0) | 2022.12.21 |