코딩 테스트
[ 프로그래머스 ] 정수 내림차순으로 배치하기
주연배
2024. 3. 23. 19:34
문제
풀이
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로 문제를 풀면서 다양한 메서드들을 알아보고 싶다.