[코테 스터디 11일차 TIL] 정수 내림차순으로 배치하기

dev_jubby·2024년 8월 2일
1

코테스터디

목록 보기
11/36



💛 오늘의 학습 키워드

[정렬] 정수 내림차순으로 배치하기



📝 문제

문제 설명

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

제한 조건

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

입출력 예

nreturn
118372873211



💬 내 풀이

import java.util.*;
import java.util.stream.*;

class Solution {
    public long solution(long n) {
        return Long.parseLong(Arrays.stream(String.valueOf(n).split("")).sorted(Comparator.reverseOrder()).collect(Collectors.joining()));
    }
}

💻 내 접근 방법

  1. n 을 String 형으로 변환한 후, Arrays.stream()을 사용해서 배열로 변경해준다.

  2. stream의 sorted() 함수를 사용하여 정렬을 진행하는데, 기본은 오름차순이라 내림차순으로 정렬하기 위해 Comparator 를 사용했다.

    • Comparator.reverseOrder()

Comparator.reverseOrder() : 복잡한 정렬 기준 또는 비교할 수 없는 개체를 처리할 때 사용
Collections.reverseOrder() : 요소 자체가 '비교 가능'하고, 간단한 컬렉션일때 사용

  1. 정렬한 후에 다시 문자들들을 합치기 위해 Collectors.joining() 메서드를 사용했다.

    • Collectors.joining()
  2. long 타입으로 return 하기 위해 Long.parseLong()을 사용했다.




💦 회고

처음에 String 형으로 변환하지 않고, int 형 그대로 정렬을 해보려고 시도했지만 정렬이 진행되지 않았다




참고
https://velog.io/@mpfo0106/코테에서-자주-사용하는-Java-메소드들

profile
신입 개발자 쥬비의 기술 블로그 입니다.

0개의 댓글