alorithm/programmers

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

Hannana. 2023. 4. 11. 18:53
728x90
반응형

[문제]

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

<제한 조건>
n은 1이상 8000000000 이하인 자연수입니다.

입출력 예

n return
118372  873211

 

 

 

[나의 풀이]

import java.util.Arrays;
class Solution {
    public long solution(long n) {
        long answer = 0;
        String[] nn = String.valueOf(n).split("");
        Arrays.sort(nn);
        StringBuilder result = new StringBuilder();
        for (String num : nn) result.append(num);
        answer = Long.parseLong(result.reverse().toString());
        return answer;
    }
    public static void main(String[] args){
        Solution rs = new Solution();
    }
}

 

 

[다른 사람의 풀이]

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);
    }

    // 아래는 테스트로 출력해 보기 위한 코드입니다.
    public static void  main(String[] args){
        ReverseInt ri = new ReverseInt();
        System.out.println(ri.reverseInt(118372));
    }
}

 

 


전체적으로 고급 문법이 많이 쓰인 것 같다. 보고 배워야지.

forEach 정도는 바로 적용할 수 있을 것 같다.

이렇게도 간결하게 결과를 낼 수 있구나 놀랐다.

 

 

 

반응형