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

jsbak·2021년 5월 26일
0

알고리즘

목록 보기
2/19

링크 : https://programmers.co.kr/learn/courses/30/lessons/12933

문제 설명

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

제한 조건

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

문제 풀이

문자열을 char 배열로 만든다음 정렬 Arrays.sort()
정렬한 char 배열을 다시 new String(char c) 으로 문자열로 만들어준다.
StringBuffer 객체의 reverse() 메서드를 이용해서 문자열을 뒤집어준다.
Wrapper 클래스를 이용해서 String 객체에서 long 형의 숫자로 만들어준다.

소스코드

import java.util.*;

class Solution {
    public long solution(long n) {
        // StringBuffer 객체를 이용하여 reverse() 메서드 이용
        String nStr = ""+n;
        char[] ch = nStr.toCharArray();
        Arrays.sort(ch);
        String rnStr = new String(ch);
        
        StringBuffer sb = new StringBuffer(rnStr);
        
        String reverseStr = sb.reverse().toString();
        
        // 랩퍼 클래스를 이용해서 long 형으로 다시 변경
        // 문자열 숫자로 변환하기 long l = Long.parseLong(sb);
        
        n = Long.parseLong(reverseStr);
        
        return n;
    }
}

Wrapper Class 참조 : https://pridiot.tistory.com/60

profile
끄적끄적 쓰는곳

0개의 댓글