본문 바로가기

programmers-코딩테스트 연습/Level 1. 자바

2021-07-13 / 정수 내림차순으로 배치하기

문제 설명

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

 

제한 조건

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

 

입출력 예

n return
118372 873211

 

 

초기 코드

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

 

 

정답 코드

import java.util.Arrays;

class Solution {
  public long solution(long n) {
        long answer=0;
		String[] arr = String.valueOf(n).split(""); 
		Arrays.sort(arr); 
		
		String str = new String("");
		for(int i=arr.length-1; i>=0; i--) str += arr[i]; 
        answer=Long.parseLong(str);
		return answer;
	}
}

 

코드 설명

현재 long타입인 n을 문자열로 바꾸어(String.valueOf(n)) 자른 후(split("")) 배열에 넣어준다. 
이후 sort 메서드를 통해 오름차순으로 정렬한다.
오름차순으로 정렬되어 있기 때문에 끝방부터 0번방까지 순서대로 문자열로 만든다. (str += arr[i]) 문자열은 +기호로 뒤에 붙일 수 있다.
문자열을 다시 long타입으로 바꾼다.  Long.parseLong(str)

 

 

 

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

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

programmers.co.kr