undefined
[프로그래머스] 가장 큰 수 -JS 본문
반응형
문제 설명

합쳐서 비교하기 위해 문자열로 바꿔서 정렬해주고 sort함수를 이용하여 비교
배열 요소 모두 0일때는 가장 큰 수는 0 이므로 0리턴
문제 풀이
function solution(numbers) {
let answer = numbers.map(e=>`${e}`).sort((a,b)=>(b+a)-(a+b)).join('')
return answer[0]==='0' ? '0' : answer
}
1. numbers요소를 모두 문자로 바꿔준다.
2. 정렬로 (b+a)-(a+b)을 해준다. ==> 문자열이기에 6,10 의경우에 106-610이 된다. 이때 음수라면 안바뀐다. 즉, 2개의 요소를 그냥 더한것(a+b)보다 바꿔서 더한것(b+a)이 크면 순서를 바꾼다. 반대로 그냥 더한것(a+b)이 더 크면 순서를 유지한다.
3. 하나의 문자열로 변환해준다.
4. 모두 0 인경우를 대비하여 처음 수가 문자0이라면 '0'을 리턴해주고 아니라면 answer를 리턴한다.
배운 점
sort((a,b)=>a-b) 의 원리를 알게 되었다.
처음 것에서 그 다음것을 빼서 양수면 바꾸고 음수면 바꾸지 않음 === a가 크면 바꾼다 => 오름차순
반응형
'Coding Test' 카테고리의 다른 글
[프로그래머스] JadenCase - 자바스크립트 (0) | 2022.07.13 |
---|---|
[프로그래머스] 다리를 지나는 트럭 -자바스크립트 (0) | 2022.07.12 |
[프로그래머스] 프린터 -JS (0) | 2022.07.08 |
[프로그래머스] 타겟 넘버 -JS (0) | 2022.07.07 |
[프로그래머스] 스킬트리 -JS (0) | 2022.07.06 |