본문 바로가기
JAVA/Programmers

JAVA 프로그래머스 [정수 내림차순으로 배치하기] 자바 Lv.1

by tripleup 2023. 8. 1.
728x90
반응형

[프로그래머스] 코딩테스트 연습 -> 연습문제 -> 정수 내림차순으로 배치하기

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


해결 과정

 

이 문제를 보고 생각한 루트는

 

1. 정수 n을 문자열로 바꾼다

2. 문자열 각 문자를 정수로 변환하여 정수 배열을 만든다

3. 배열을 sort한다

4. 1의 자리부터 answer에 자릿수를 계산하여 더해준다

 

이렇게 였다.

 

1. 우선 정수 n을 문자열 s 로 바꿔준다.

String s = String.valueOf(n);
 

2. 다음 정수 배열 list를 만들어 문자열 길이만큼 크기를 정해주고, 반복문을 이용하여 list에 정수형으로 변환한 값을 넣어준다.


for (int i=0; i<s.length(); i++) {
       list[i] = Integer.valueOf(s.charAt(i)) -48;
}

 

3. 그리고 정렬을 하고

Arrays.sort(list);

 

4. 반복문을 이용하여 해당 각 자릿수 만큼 10의 거듭제곱을 계산하여 answer에 누적하여 더해준다.

for (int i=0; i<list.length; i++) {
      answer += list[list.length-1-i] * (long)Math.pow(10, list.length-1-i);
}  

 

소스 코드

 

import java.util.Arrays;

class Solution {
    public long solution(long n) {
        long answer = 0;
        
        String s = String.valueOf(n);
        int[] list = new int[s.length()];
        for (int i=0; i<s.length(); i++) {
            list[i] = Integer.valueOf(s.charAt(i)) -48;
        }
        
        Arrays.sort(list);
        for (int i=0; i<list.length; i++) {
            answer += list[list.length-1-i] * (long)Math.pow(10, list.length-1-i);
        }  
        return answer;
    }
}

 


728x90
반응형

댓글