송민준의 개발노트

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

알고리즘/프로그래머스

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

송민준 2019. 11. 18. 12:51

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

 

코딩테스트 연습 - 정수 내림차순으로 배치하기 | 프로그래머스

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

programmers.co.kr

나머지를 이용해서 숫자값 하나씩 뽑고 int 배열에 넣는다.

배열을 정렬한 후 StringBuilder에 넣고 역순으로 두고 Long으로 파싱해서 반환한다.

import java.util.Arrays;
class Solution {
  public long solution(long n) {
      StringBuilder c = new StringBuilder("");
		c.append(n);
		int[] a = new int[c.length()];
		int count = 0;
		
		while(n > 0) {
			a[count++] = (int)(n%10);
			n/=10;
		}
		Arrays.sort(a);
		c.delete(0, c.length());
		for(int i = 0; i < a.length; i++) {
			c.append(a[i]);
		}
		c.reverse();
		
		
		return Long.parseLong(c.toString());
  }
}

 

 

참고할 코드