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
반응형
'JAVA > Programmers' 카테고리의 다른 글
JAVA 프로그래머스 [두 정수 사이의 합] 자바 Lv.1 (0) | 2023.08.02 |
---|---|
JAVA 프로그래머스 [하샤드 수] 자바 Lv.1 (0) | 2023.08.02 |
JAVA 프로그래머스 [문자열을 정수로 바꾸기] 자바 Lv.1 (0) | 2023.08.01 |
JAVA 프로그래머스 [정수 제곱근 판별] 자바 Lv.1 (0) | 2023.08.01 |
JAVA 프로그래머스 [문자열 내 p와 y의 개수] 자바 Lv.1 (0) | 2023.08.01 |
댓글