알고리즘_24번-2021.11.10

Jonguk Kim·2021년 11월 10일
0

알고리즘

목록 보기
8/15

1. 문제: 정수 내림차순으로 배치하기

  • 문제 설명

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

  • 제한사항

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

  • 입출력 예


2. 설계 및 구현

  • 분류
    • 입력값: long 정수 n
    • 처리: 각 자릿수를 큰것부터 작은 순으로 정렬
    • 출력값: long 정수
  • 생각
    • 각 자릿수를 분류 => %10: 자릿수 / /10: 자릿수 이동
    • 각 자릿수 합함
    • 조건문으로 나눠지는지 확인
  • 성공코드
import java.util.*;

class Solution {
    public long solution(long n) {
        long result = 0;
        
        String num = String.valueOf(n); // 숫자 -> 문자열
        String temp = "";
        char[] arr = num.toCharArray();  // 문자열 -> 문자 배열
        
        Arrays.sort(arr);   // 정렬
        
        //역순으로 넣음
        for (int i = arr.length-1; i >= 0; i--)
            temp += arr[i];
        
        //숫자변환
        result =  Long.parseLong(temp);
        return result;
    }
}
  • 참조코드
public class ReverseInt {
    String res = "";
    public int reverseInt(int n){
        res = "";
        Integer.toString(n).chars().sorted().forEach(c -> res = Character.valueOf((char)c) + res);
        return Integer.parseInt(res);
}

3. 배운 것 / 느낀점

  • 성공코드
  • 참조코드
profile
개발일지

0개의 댓글