본문 바로가기
Algorithm/프로그래머스(Programmers)

[ 자바스크립트(JavaScript) ] 프로그래머스 level2 - 가장 큰 수

by YWTechIT 2022. 3. 23.
728x90

📍 프로그래머스 2단계 - 가장 큰 수

프로그래머스 2단계 - 가장 큰 수

 

정수를 이어 붙일 때 사칙연산을 하는 게 아니기 때문에 map함수를 이용하여 numbers를 모두 String으로 변경해준다. 이후에 sort함수를 이용하여 인자끼리 대소관계를 비교해준다. 여기서 주의할 점은 비교 순서를 헷갈리지 말아야 한다. 만약, numbers[6, 10, 2]가 주어지면 첫번째 비교대상에서 인자 a10, b6이다. 따라서 b+a610이고, a+b106이다. 서로의 값을 빼면 양수이기 때문에 순서를 유지하고 다음 차례로 넘어간다. 만약, 서로의 값을 뺐을 때 음수라면 위치를 바꿔준다.

마지막으로 입력이 모두 0일 때가 있는데, 이때는 Number형태로 변환했을 때 값이 0인지 구별하면 된다.

728x90
function solution(numbers) {
  const answer = numbers
    .map(String)
    .sort((a, b) => (b + a) - (a + b))
    .join("");

  return +answer === 0 ? "0" : answer;
}
반응형

댓글