Lv 2. 가장 큰 수

박하린·2021년 6월 8일
0

프로그래머스

목록 보기
26/42

📚 문제

정렬 - 가장 큰 수
https://programmers.co.kr/learn/courses/30/lessons/42746

💡 접근

첨에 순열 알고리즘으로 풀어야겠다고 생각하고 구글링을 했다.
근데 그렇게 하면 모든 경우의 수를 다 뽑아내서 join으로 합치고 가장 큰 수를 찾아내야되는데 너무 오래 걸릴것 같아서 엎어버리고 풀이를 찾아봤다..

⌨️ 코드

function solution(numbers) {
  const answer = numbers
    .map((v) => v + "") // 숫자를 문자열로 바꾸고
    .sort((a, b) => (b + a) - (a + b)) // 문자열 끼리 합쳐서 비교를 해준다 가장 큰 수를 찾아야 하기 때문에 b+a 에서 빼준다.
    .join(""); // sort한 문자열을 합쳐준다.

  return answer.replace(/^0+/,"0"); 
  // 테스트 케이스에서 [0,0,0,0]이 주어지면 "0000" -> "0"으로 치환해준다. 
}

✅ 새로 알게 된 내용

숫자를 문자열로 바꾸는 방법

  • 숫자 + "" (빈문자열) 해주면 문자열로 바꿀 수 있다.
  • 외에도 toString() 함수를 사용할 수도 있다.

정규식

+ : 앞의 표현식이 1회 이상 연속으로 반복되는 부분과 대응

📝 리뷰

내 힘으로 완전히 풀지는 못했지만 comparefunction을 잘 활용하여 문자열을 합쳐가면서 정렬하는 방법을 알 수 있게 되었다.

profile
깃허브: https://github.com/khakaa

0개의 댓글

관련 채용 정보