반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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 31
Archives
Today
Total
관리 메뉴

undefined

[프로그래머스] 가장 큰 수 -JS 본문

Coding Test

[프로그래머스] 가장 큰 수 -JS

JavaScripter 2022. 7. 9. 14:38
반응형

문제 설명

합쳐서 비교하기 위해 문자열로 바꿔서 정렬해주고 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가 크면 바꾼다 => 오름차순

반응형
Comments