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

Benjamin·2023년 3월 3일
0

프로그래머스

목록 보기
35/58

내 풀이

import java.util.*;

class Solution {
    public long solution(long n) {
        long answer = 0;
        String str = "" + n;
        Integer[] arr = new Integer[str.length()];
        int index =0;
        while(n>0) {
            arr[index] = (int) (n%10);
            n /= 10;
            index++;
        }
        Arrays.sort(arr, Collections.reverseOrder());
        str ="";
        for(int i=0; i<arr.length; i++) {
            str += arr[i];
        }
        answer = Long.parseLong(str);
        return answer;
    }
}

다른 풀이

import java.util.*;

class Solution {
  public long solution(long n) {
        String[] list = String.valueOf(n).split("");
        Arrays.sort(list);

        StringBuilder sb = new StringBuilder();
        for (String aList : list) sb.append(aList);

        return Long.parseLong(sb.reverse().toString());
  }
}

다양한 메서드를 사용해 한결 간단하게 구현했다.

공부한 사항

  • 내림차순으로 정렬하는 Arrays.sort(arr, Collections.reverseOrder());를 쓰려면 byte, char, double, short, long, int, float같은 PrimitiveType의 배열에는 적용이 불가능하니 Integer같은 Wrapper "Class"를 이용해야한다.

  • split()를 하면 특정 문자열을 파라미터로 받아서 해당 문자열을 기준으로 문자열을 잘라 문자열 배열로 넣어준다.

  • reverse() 메소드를 사용하기위해서는, StringBuilder/StringBuffer 클래스를 이용한다. 이 메서드는 문자열을 뒤집어준다.

  • StringBuilder/StringBuffer를 toString()을 이용해 String으로 바꿔준다.

0개의 댓글