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

정선모·2022년 1월 20일
0

프로그래머스

목록 보기
25/91

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

제한사항 :

  • n은 1이상 8000000000 이하인 자연수입니다.
  • int, long, String 형변환과 Join 메소드 활용하여 문제 해결하였습니다. 조건문과 합을 구하는 경우에 타입에 유의해서 해결하면 됩니다.

    class Solution {
        public long solution(long n) {
            String[] str = Long.toString(n).split("");
            // 매개변수 n을 String 문자열로 변환하고,
            // split 메소드로 나눈 값을 str 배열에 입력한다.
            String s = "";
            
            // sort 메소드 x 직접풀이 해보자
            for(int i=0; i<str.length; i++){
                for(int j=0; j<str.length; j++){
                    if(Integer.parseInt(str[j]) < Integer.parseInt(str[i])){
                        // 반복문 돌며 str[i]가 str[j]보다 큰경우 조건문 제시
                        s = str[i];
                        str[i] = str[j];
                        str[j] = s;
                        // 0번째 인덱스부터 순차적으로 돌며 큰수를 -1 인덱스로 이동시킨다.
                    }
                }
            }
            
            long answer = Long.parseLong(String.join("", str));
            // join 메소드를 사용하여 str배열의 문자들을 한 문자열로 만들고,
            // 해당 값을 Long 타입으로 변환하고 return한다.
            return answer;
        }
    }

    [프로그래머스] 정수 내림차순으로 배치하기 링크

    profile
    개발자가 되어가는 비전공자

    0개의 댓글