https://school.programmers.co.kr/learn/courses/30/lessons/12933

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


 

 

n을 10씩 나눈 나머지를 계속 잘 보관해두었다가...

정렬한 후 다시 리턴하면 끝!

 

- Java

ArrayList를 이용하였다.

리턴값을 보낼 때는 Stringbuilder를 이용하여 쉽게 합쳐준 후 long 값으로 던져주었다.

import java.util.*;
class Solution {
    public long solution(long n) {		
		ArrayList<Integer> aa = new ArrayList<>();
		StringBuilder sb = new StringBuilder();
		while(n>0) {
			aa.add((int) (n%10));
			n/=10;
		}
        Collections.sort(aa);
		for(int i:aa) {
			sb.append(i);
		}
        
		
        return Long.valueOf(sb.reverse().toString());
    }
}

 

 

- Ruby

루비는 크게 문제가 되지 않았기 때문에 그냥 바로 정수로 넘겨주었다.

 

def solution(n)
    a=[]
    while(n>0)
        a.append(n%10)
        n=n/10
    end
    a.sort!
    answer = 0
    a.reverse_each{|aa|
        answer=answer*10
        answer=answer+aa
    }    
    return answer
end

+ Recent posts