RATSENO

[JAVA]프로그래머스(level1) - 정수 내림차순으로 배치하기 본문

DEV/코딩테스트 문제풀기

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

RATSENO 2020. 1. 6. 13:34

문제설명

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


제한사항

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


문제풀이

import java.util.Arrays;
import java.util.Collections;

class Solution {
  public long solution(long n) {
		long answer = 0;

		String nStr = String.valueOf(n);
		/**
		 * Collections.reverseOrder()를 사용하기 위해 Integer로 선언
		 */
		Integer[] arrs = new Integer[nStr.length()];

		for (int i = 0; i < nStr.length(); i++) {
			arrs[i] = nStr.charAt(i) - 48;
		}

		/**
		 * 내림차순 정렬
		 */
		Arrays.sort(arrs, Collections.reverseOrder());

		for (int i = 0; i < arrs.length; i++) {
			answer += arrs[i] * Math.pow(10, arrs.length - 1 - i);
		}

		return answer;
  }
}

다른 사람 문제 풀이

public class ReverseInt {
    String res = "";
    public int reverseInt(int n){
        res = "";
        Integer.toString(n).chars().sorted().forEach(c -> res = Character.valueOf((char)c) + res);
        return Integer.parseInt(res);
    }

    // 아래는 테스트로 출력해 보기 위한 코드입니다.
    public static void  main(String[] args){
        ReverseInt ri = new ReverseInt();
        System.out.println(ri.reverseInt(118372));
    }
}
Comments