(JAVA) 각 자릿수를 큰것부터 작은 순으로 정렬한 정수 리턴 받기

2024. 9. 14. 07:42·JAVA 알고리즘

▶ 문제

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

★ 풀이방식
sort 메소드와 StringBuilder를 사용.
sort로 배열을 오름차순으로 정렬한 뒤, 반복문과 StringBulder를 이용하여 정렬된 값을 문자열에 담았다.
마지막으로 reverse메소드를 통해 내림차순으로 정렬해주었다.

▶ 소스코드

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

        StringBuilder sb = new StringBuilder();
        for (int i=0; i<n.length(); i++){
            sb.append(list);
        }

        answer = Long.parseLong(sb.reverse().toString());
        return answer;
    }
}
  • 실행 시 중간 부분에서 오류가 발생한다. 아무래도 n의 길이를 활용해서 for문을 사용한게 문제인거 같아서 추가로 수정해보았다.

▶ 수정된 소스코드

    import java.util.*;
    class Solution {
     public long solution(long n) {
         long answer = 0;
         String[] list = String.valueOf(n).split("");
         Arrays.sort(list);

         StringBuilder sb = new StringBuilder();
         for(String alist : list) {
             sb.append(alist);
         }

         answer = Long.parseLong(sb.reverse().toString());
         return answer;
     }
    }
  • for문의 실행 부분을 수정하여 다시 실행하였더니 정상적으로 실행되었다. StringBuilder를 사용했을때 for문의 내용을 다른 식으로 해보았는데 잘 되지는 않았던거 같다.

'JAVA 알고리즘' 카테고리의 다른 글

(JAVA) 실제 정수들의 합을 구하여 return 하도록 함수 완성하기  (0) 2024.09.19
(JAVA) 단어 s의 가운데 글자를 반환하는 함수  (1) 2024.09.19
(JAVA) 콜라츠 추측  (0) 2024.09.15
(JAVA) 두 정수 사이에 속한 모든 정수의 합을 리턴하는 함수  (0) 2024.09.14
(JAVA) 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수  (0) 2024.09.14
'JAVA 알고리즘' 카테고리의 다른 글
  • (JAVA) 단어 s의 가운데 글자를 반환하는 함수
  • (JAVA) 콜라츠 추측
  • (JAVA) 두 정수 사이에 속한 모든 정수의 합을 리턴하는 함수
  • (JAVA) 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수
lastdove
lastdove
lastdove 님의 블로그 입니다.
  • lastdove
    lastdove 님의 블로그
    lastdove
  • 전체
    오늘
    어제
    • 분류 전체보기 (80)
      • Spring (16)
      • JAVA (17)
      • JAVA 알고리즘 (20)
      • Project (5)
      • SQL 문제풀이 (17)
      • Git&Linux (2)
      • Web development(입문) (2)
      • Sparta (1)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
lastdove
(JAVA) 각 자릿수를 큰것부터 작은 순으로 정렬한 정수 리턴 받기
상단으로

티스토리툴바