프로그래머스 Level 1 - 정수 내림차순으로 배치하기

크롱·2023년 9월 27일
0

코딩테스트

목록 보기
14/61

젭알... sort 와 reverse를 이용하자..

문제

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

나의 풀이

걍 갑자기 버블정렬이 생각났따


function solution(n) {
    const num = n.toString().split('').map((n) => {
  return parseInt(n, 10);
}); // n이 1234 라면, [1,2,3,4]로

  for (let i = 0; i < num.length - 1; i++) {              
    for (let j = 0; j < num.length - i; j++) {            
      if (num[j] <= num[j + 1]) {
        let value = num[j];
        num[j] = num[j+1];
        num[j+1] = value;

      }
    }
  }
return parseInt(num.join(''))
}

다른 풀이



function solution(n) {
  const newN = n + ""; //문자열로 만들기 //"2538"
  const newArr = newN // "2538"
    .split("") //['2', '5', '3', '8']
    .sort(function(a,b){return a-b}) 
  // ['2', '3', '5', '8']
    .reverse()
    .join("");

  return +newArr;
}

주의 : sort함수에 sort()만 입력하면 문자열 숫자를 제대로 비교못할수도있으니 꼭 ()안에 function(a,b){return a-b} 써주자.

profile
👩‍💻안녕하세요🌞

0개의 댓글