본문 바로가기

코딩 테스트 연습/알고리즘

[ 코딩 테스트 ] 정수 내림차순으로 배치하기

문제

조건

 

정답

 

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

class Solution {
    public long solution(long n) {
        long answer = 0;
        String[] str = Long.toString(n).split("");
        Arrays.sort(str, Collections.reverseOrder());
        
        String strNum = "";
        for(String s : str) {
           strNum += s;
        }
        answer = Long.parseLong(strNum);
        
        return answer;
    }
}

 

후기

 

전부 for 문으로 돌리려고 하다가 그럼 정렬은 어떡하지 라는 생각에 바로 구글 검색했다

 

Long.toString(n).split("")

=>  long 타입으로 받아온 n 을 문자로 나누어주는 함수이다

 

Arrays.sort(str, Collections.reverseOrder())

=> Arrays.sort() 는 배열의 오름차순, 내림차순을 해주는 메서드다

     Arrays.sort(str) 만 넣었을 때는 오름차순,

    위에 내용처럼 두번째 매개변수에 Collections.reverseOrder() 를 넣어주면 내림차순 해준다

    두 개 모두 import 가 필요한 클래스 메서드이니 꼭 넣어줘야 한다

 

Long.parseLong(strNum)

=> 바로 반환하려고 하니까 타입 오류로 인해 추가한 코드다

     for 문으로 돌려서 String 타입 변수에 넣었던 값을 다시 long 타입으로 형변환해줬다