반응형
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 |
Tags
- 정렬 알고리즘
- JavaScript
- 자바스크립트 배열
- mysql스키마
- 키패드누르기풀이
- MySQL
- 깃허브
- TS
- 프로그래머스
- 프로그래머스 자바스크립트 풀이
- Javascript 정렬
- Javascript sort
- 맨해튼거리
- 자바스크립트 정렬
- TypeScript
- 맨해튼거리예제
- 티스토리챌린지
- next.js
- 정규표현식문제
- 자료구조
- 좌표거리구하기
- 오블완
- node.js
- 프로그래머스 자바스크립트
- 프로그래머스 신규아이디추천
- 알고리즘
- js 알고리즘
- 타입스크립트
- binary search
- 자바스크립트 알고리즘
Archives
- Today
- Total
FE PARADISE
프로그래머스 최솟값 만들기 - 자바스크립트 코드 본문
반응형
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제에 의하면 주어진 두 배열 A,B에서 각각 한 개씩 숫자를 뽑아 곱하고 이 과정을 배열의 길이만큼 수행한 다음 각 곱셈에 대한 값들을 누적으로 합한 답 중 최솟값을 반환해야 한다.
최솟값을 구하는 방법은 쉽다. A 배열에서 가장 큰 수, B 배열에서 가장 작은 수를 곱하고 그 다음으로 A 배열에서 가장 큰 수 그 다음으로 B 배열에서 가장 작은 수를 곱하는 식으로 반복하면 된다. 물론 B 배열에서 가장 큰 수와 A 배열에서 가장 작은 수를 찾아내며 곱하는 방식을 채택해도 상관없다.
나는 A 배열에서는 가장 작은 수를 B 배열에서는 가장 큰 수를 찾아서 곱하는 방식을 채택했다.
따라서 코드를 보면 A 배열은 오름차순으로 B 배열은 내림차순으로 정렬해준다.
A.sort((a,b) => a-b);
B.sort((a,b) => b-a);
이 후 reduce 문을 이용해 다음과 같이 누적합을 알아낸다. 이 값을 반환해주면 끝이다.
return A.reduce((a,c,i)=> {
return a + c * B[i];
},0);
전체 코드는 다음과 같다.
function solution(A,B){
A.sort((a,b) => a-b);
B.sort((a,b) => b-a);
return A.reduce((a,c,i)=> {
return a + c * B[i];
},0);
}
반응형
'자료구조 & 알고리즘' 카테고리의 다른 글
프로그래머스 이진 변환 반복하기 - 자바스크립트 풀이 (0) | 2024.11.27 |
---|---|
프로그래머스 JadenCase 문자열 만들기 - 자바스크립트 풀이 (0) | 2024.11.24 |
프로그래머스 로또의 최고 순위와 최저 순위 - 자바스크립트 풀이 (0) | 2024.11.24 |
프로그래머스 신규 아이디 추천 - 자바스크립트 (0) | 2024.11.17 |
프로그래머스 햄버거 만들기 (stack) - 자바스크립트 풀이 (0) | 2024.11.04 |