본문 바로가기
코딩 테스트

[ 프로그래머스 ] 정수 내림차순으로 배치하기

by 주연배 2024. 3. 23.

문제

 

풀이

1. n을 문자열로 바꾼 후 
2. split을 이용하여 배열로 바꿔준다.
3. 그 후 sort로 배열을 정렬하기
4. 정렬해준 배열을 for문을 돌려 역수로 만듦
5. 만들어준 배열을 long 타입으로 변환시켜준다.

 

결과 (자바)

import java.util.Arrays;
class Solution {
    public long solution(long n) {
        String answer = "";
        String[] str = String.valueOf(n).split(""); 
        Arrays.sort(str);
        for(int i=str.length-1; i>=0; i--){
            answer +=str[i];
        }
        return  Long.parseLong(answer);  

    }
}

function solution(n) {
    var answer = 0;
    return parseInt((n+'').split('').sort().reverse().join(''));
}

 

위 코드는 자바스크립트로 풀었을때의 결과다.

자바 코드랑 비교해본다면 훨씬 깔끔하고 가독성이 좋아진 모습을 볼 수 있었다.

다음은 js로 풀었을 때의 코드를 분석해 보도록 하겠다!

(n+'') : 정수를 문자열로 바꿔준다
split('') : 배열로 바꿔준다
sort() : 배열을 오름차순으로 정렬시켜준다
reverse() : 배열의 순서를 반전시키는 배열 메소드다 //내림차순으로 변경
join('') : 배열을 ('' 기준으로) 문자열로 바꿔준다
parseInt() : 정수로 변환

 

js풀이를 찾아보니 다음과 같은 코드를 짤 수도 있다는 것에 엄청 놀랐다. 지금까지 자바로 풀었을 때와는 차원이 다르게 깔끔하다는 느낌이다.. 이렇게 js로 풀어보면서 reverse()와 join() 그리고 parseInt()에 대해 알아간다! 앞으로도 js로 문제를 풀면서 다양한 메서드들을 알아보고 싶다.