728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42746
풀이
처음에는 DFS로 풀어볼까 라고 생각했지만 시간초과 에러가 예상되어 정렬 알고리즘을 생각해봤다.
sort 메서드를 사용할 때 a b 두 변수는 문자열이며 두 문자열을 앞뒤로 서로 더했을 때, 크기를 기준으로 정렬했다.
마지막에 값을 반환할 때는 0으로 시작하는 모든 문자들을 0으로 대체했는데, 이는 numbers로 입력된 배열의 요소들이 모두 수학적으로 0일때의 예상 결과는 0이 되기 때문에 0으로 시작하는 모든 문자들을 0 하나로 바꿔준 것이다.
만약 배열의 요소들 중 하나라도 0보다 큰 수가 있다면 당연히 결과값은 0보다 커진다.
코드
const solution = (numbers) => {
let answer = numbers
.map(n => n.toString())
.sort((a, b) => {
return (b + a) - (a + b)
})
.join('');
return answer.replace(/^0+/, '0');
};
728x90
'코딩 테스트 > 프로그래머스 코딩 테스트 연습' 카테고리의 다른 글
[JS] 프로그래머스_level 3_야근 지수 (0) | 2024.07.12 |
---|---|
[Javascript] 3Level_네트워크 (0) | 2024.06.10 |
[JS] 2Level / 연습문제 / 연속 부분 수열 합의 개수 (0) | 2024.04.25 |
[JS] 2Level / 해시 / 전화번호 목록 (0) | 2024.04.18 |
[JS] 2Level / 연습문제 / 연속 부분 수열 합의 개수 (1) | 2024.04.09 |