백엔드개발자/알고리즘관련

하나의 정수 각 자리수를 큰 순서대로

보혀니 2022. 4. 28. 17:16

함수 solution은 정수 n을 매개변수로 입력받습니다.

n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요.

예를들어 n이 118372면 873211을 리턴하면 됩니다.

 

제한 조건

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

 

import java.util.Arrays;
import java.util.Scanner;

class Solution {
	public long solution(long n) {
		long answer = 0;
		
		// String으로 바꿔서 char 배열만들어서 sort할 예정
		
		// String으로 바꾸기
		String str = String.valueOf(n);
		char[] cArr = new char[str.length()];
		
		// char 배열로 넣기
		for(int i=0; i<cArr.length; i++) {
			cArr[i] = str.charAt(i);
		}
		// 정렬 후 뒤집기
		Arrays.sort(cArr);
		String StrRev = new StringBuilder(new String(cArr)).reverse().toString();

		// Long으로 다시 변환
		answer = Long.parseLong(StrRev);

		return answer;
	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		long n = sc.nextLong();
		
		Solution s = new Solution();
		
		System.out.println(s.solution(n));
	}
}

 

 뒤집기 때 reverse 사용하지 않고

배열 뒤에서 부터 차례대로 하나하나

answer+= 해서 쌓아주는 방법도 있음