[프로그래머스_JavaScript] 정수 내림차순으로 배치하기 문제풀이

🔔 해당 문제

💻 정수 내림차순으로 배치하기 (클릭)


📖 문제 설명

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


🚫 제한사항

  • n은 1이상 8000000000 이하인 자연수입니다.

🤔 입출력 예



📝 풀이1


function solution(n) {
    let answer = n + "";
    let answer2 = answer.split('') 
    return Number(answer2.sort((a, b) => b - a).join(''));
}

매개변수로 입력받는 정수 n에 ""를 더하여 문자형으로 만들어준 후,
answer 값을 .split()으로 쪼갠다.
answer2의 값을 .sort()를 사용하여 내림차순( b - a )을 해주고
join()을 통해 다시 문자열로 합쳐준다.


여기까지 했더니 자꾸 오류떠서 장훈님한테 물어보러 갔더니
오류를 잘 봐보라고
"873211"랑 873211 차이가 뭔지 생각해보라고 했다
👉 "873211"은 문자형이고 873211은 숫자형..!!! (두둥!!!!)


결론은 문자형으로 출력된 "873211"을
숫자형으로 바꿔주는 과정이 필요했다.....하...
모질라랑 구글링 엄청했더니 이제 머리가 아프다
👻오늘밤은👻 함수 기본 문법 공부를 더 해야할 것 같다....😥😥


🍒 참고하면 좋을 자료 🍒

📘 JavaScript Number Mozila (클릭)
📘 JavaScript .split() Mozila (클릭)
📘 JavaScript sort Mozila (클릭)
📘 JavaScript arr.sort() (클릭)
📘 JavaScript 문자열을 숫자로 변환 (클릭)
📘 JavaScript 문자열 내림차순으로 배치하기 (클릭)
📘 JavaScript 연산자와 자료형변환 (클릭)



📝 풀이2


const solution = (n) =>
	Number(n.toString().split("").sort().reverse().join(""));

풀이1이 .sort()를 사용해 내림차순 방법을 이용했다면,
아주 간결한 풀이2는 숫자를 문자열로 변환해
split으로 배열로 만들어서 .sort()로 먼저 정렬을 하고
.reverse()를 사용해 오름차순으로 정리된 순서를
내림차순으로 바꾸신 풀이 방법이다.
let으로 선언하지 않고 한 줄로 만들어내시다니 대단,,


🍒 참고하면 좋을 자료 🍒

📘 다른 분의 풀이 (클릭)
📘 JavaScript .toString() Mozila (클릭)

좋은 웹페이지 즐겨찾기