20.09.07
출처 : 프로그래머스
📝문제
https://programmers.co.kr/learn/courses/30/lessons/42746
✏️해답
function solution(numbers) {
var answer = numbers.map(c => c+'').sort((a,b)=>(b+a)-(a+b)).join('');
return answer[0]=='0'?'0':answer;
}
회고🧐
완전 짧은 코드로 끝낼 수 있었는데, map과 sort()안에 정의되는 함수를 이해하지 못해서 못푼문제. sort()와 map 정리하기!
✅ 학습
1. Sort() 안에 들어가는 것의 의미.
- 그 전 문제들을 풀면서 알게된 것
arr.sort(function(a,b){return b-a}) /// 내림차순 정렬 [5,4,3,2,1] arr.sort(function(a,b){return a-b} /// 오름차순 정렬 [1,2,3,4,5]
Sort() 함수 안에 들어가는 반환값에 따라 정렬되는 것이 달라진다.
- function(a,b)의 return값 > 0 : b를 a보다 낮은 인덱스로 정렬한다.(반환값이 양수면 b가 앞에오고)
- function(a,b)의 return값 < 0 : a를 b보다 낮은 인덱스로 정렬한다. (반환값이 음수면 a가 앞에온다)
- function(a,b)의 return값 == 0 : a,b를 그대로 둔다.
2. map() 함수
map()메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환한다.
arr = [1,2,3,4];
arr = arr.map(x=>x+''); // ["1","2","3","4"]
arr = arr.map(x=>x+10); // ["11","12","13","14"]
'코딩테스트' 카테고리의 다른 글
[1일1코👨🏻💻] Lv.2 위장[해시].js - 프로그래머스 (0) | 2020.09.11 |
---|---|
[1일1코👨🏻💻] Lv.2 H-index[정렬].js - 프로그래머스 (0) | 2020.09.09 |
[1일1코👨🏻💻] Lv.1 체육복.js - 프로그래머스 (0) | 2020.09.05 |
[1일1코👨🏻💻] Lv.1 모의고사(JS) - 프로그래머스 (0) | 2020.09.04 |
[1일1코👨🏻💻] Lv.1 K번째 수[정렬].js-프로그래머스 (0) | 2020.09.03 |
댓글