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

Yongwoo Cho·2021년 10월 10일
0

알고리즘

목록 보기
6/104
post-thumbnail

📌 문제

https://programmers.co.kr/learn/courses/30/lessons/42746

📌 풀이

function solution(numbers) {
  var answer = "";
  answer = numbers.map((number) => number.toString());
  answer.sort((a, b) => (b + a) - (a + b));
    if (answer.every((a) => a === '0')) {
        return '0';
    } else {
        return answer.join('');
    }
}

✔ 기본적으로 정렬을 이용하는 문제

✔ .sort()는 return하는 값이 양수이면 순서를 그대로 유지하고 음수이면 순서를 바꿔준다.

💡 문자열을 그대로 연결한수(b+a) - 바꿔 연결한 수(a+b)를 통해 문자열을 연결했을 때 큰 순서대로 배열을 정렬

ex) 입출력 예 2번째에서 b(3) + a(30) - a(30) + b(3) => 330 - 303 = 양수이므로 3 30 순서를 그대로 유지한다.

❗ 놓치기 쉬운 반례
계속 마지막 tc에서 틀렸습니다가 나왔다.
answer.every((a) => a === '0')) 로 문자열로 변환하였을 때 모든 요소가 0인경우는 '0'을 return 해줘야 마지막 tc를 통과할 수 있다

✔ 난이도 : 프로그래머스 기준 LEVEL 2

profile
Frontend 개발자입니다 😎

0개의 댓글