Programmers - 가장 큰 수

Doodream·2021년 3월 28일
0

코딩테스트

목록 보기
10/22
post-thumbnail

💻 가장 큰 수


❓ 문제

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

✔️ 코드

function solution(numbers) {
    var answer = numbers.map((number) => number.toString()).sort((a, b) => (b + a) - (a + b)).join("");
    return answer.replace(/^0+/, "0");
}
var numbers = [3, 30, 34, 5, 9];
console.log(solution(numbers));

❗️풀이과정

처음에는 순열 문제인줄 알고 순열로 풀어서 가장 큰 값을 뽑아 내었으나 시간초과에 걸렸다.

아주 단순한 문제이다.
애초에 정렬을 할때에 두개 문자를 합칠때 앞뒤로 합치고 더 큰문자를 반환해서 문자를 정렬한다. 그러면 자동으로 문자를 결합했을때 가장 큰수가 나오게된다. 그리고 그숫자를 join 함수로 붙인다.

마지막으로 답이 맨앞의 문자가 0일 경우에는 가장 큰수가 0일 경우가 되므로 그뒤 문자는 0000...일 것이다. 따라서 해당 경우 정규식을 0으로 변경한다.

배운점

  • 정규식 : /^a+/ : 맨 앞의 문자가 'a'로 시작하는 모든 문자열
  • 문자.replace(정규식, 대체할 문자열) : 문자에서 정규식에 해당하는 패턴은 대체할 문자열로 대체한다.
profile
일상을 기록하는 삶을 사는 개발자 ✒️ #front_end 💻

0개의 댓글