42일차 첫번째 문제
문제: 1차원의 점들이 주어졌을 때, 그 중 가장 거리가 짧은 것의 쌍을 출력하는 함수
난이도: 코딩테스트 문제
풀이 과정: s 배열에 값이 있고 ss는 slice 활용해서 깊은 복사로 인덱스 1부터 시작하는 새로운 메모리에
저장된 배열을 생성 s배열에 원소를 순회하면서 인덱스 1부터 시작하는 ss 배열로 각 쌍의 배열을 반환한다.
[ [1,3], [3, 4], [4, 8], ...] sort 함수를 활용해서 각 쌍의 두번째 요소와 첫번째 요소의 차이를 기준으로 오름차순으로
정렬을 하면 차이가 가장작은 쌍의 정렬된 배열로 반환이 된다.
const s = [1, 3, 4, 8, 13, 17, 20]
const ss = s.slice(1)
s.map((v, i) => [v, ss[i]]).sort((a, b) => (a[1]-a[0]) - (b[1] - b[0]))[0]
답: [3, 4]
참고사항:
slice 깊은 복사로 새로운 인덱스로 정렬된 배열을 생성한다.
sort는 원소에 값들로 오름차순 내림차순에 정렬이 가능하다.
https://codingdojang.com/scode/408
'알고리즘 100일 챌린지' 카테고리의 다른 글
자바스크립트 알고리즘 44 일차 (프로그래머스) (55) | 2023.06.09 |
---|---|
자바스크립트 알고리즘 43 일차 (프로그래머스) (23) | 2023.06.07 |
자바스크립트 알고리즘 41 일차 (프로그래머스) (26) | 2023.06.03 |
자바스크립트 알고리즘 40 일차 (코딩도장) (30) | 2023.06.01 |
자바스크립트 알고리즘 39 일차 (프로그래머스) (16) | 2023.05.30 |