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

Lee·2022년 1월 18일
0

알고리즘

목록 보기
7/24

문제 설명

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

제한 조건

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

내가 쓴 코드

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

class Solution {
    public long solution(long n) {
        long answer = 0;        
        String number = n + "";
        String temp = "";
        String[] nums = number.split("");
        ArrayList<String> numbers = new ArrayList<String>(Arrays.asList(nums));
        // Collections 객체의 정렬과 리버스를 쓰기 위해 ArrayList 생성
        
        Collections.sort(numbers); // 오름차순 정렬 후 뒤집어 내림차순 정렬
        Collections.reverse(numbers);
        
        temp = String.join("", numbers); //join을 사용해 한개의 string으로 결합
        
        answer = Long.parseLong(temp); // string을 long 타입으로 변환
        return answer;
    }
}

정리

long타입 숫자에 문자열를 더해 문자열로 변경
split을 이용해 배열로 변환
위의 배열을 이용해서 Arraylist 생성
Collections의 sort를 사용해 오름차순 정렬
Collections의 reverse를 사용해 뒤집어 내림차순 정렬
join을 사용해 하나의 문자열로 합친다
parseLong을 이용해 문자열을 Long타입 숫자로 변경

Collections에 정렬과 리버스 기능이 존재해 사용해 보았다.

profile
발전하고 싶은 백엔드 개발자

0개의 댓글