Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 현금흐름표
- 무디스
- 프로그래머스
- mco
- 다형성
- 오버라이딩
- 알고리즘
- 배당성장
- etf
- 기업분석
- 인플레이션
- 잉여현금흐름
- 금리인하
- 주린이
- 제태크
- object
- 미국주식
- 주식
- javascript
- 자바
- 객체지향
- 금리인상
- XLF
- 그리디 알고리즘
- StringBuffer
- 백준
- Java
- FCF
- S&P500
- 접근제어자
Archives
- Today
- Total
오늘의하루
[프로그래머스 1단계 - JAVA] 정수 내림차순으로 배치하기 본문
문제
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
풀이
class Solution {
public long solution(long n) {
long answer = Long.parseLong(method1(n));
return answer;
}
static String method1(long n){
int[] arr = new int[Long.toString(n).length()];
int i = 0;
while(n > 0){
arr[i] = (int)(n % 10);
i++;
n = n / 10;
}
return method2(arr);
}
static String method2(int[] arr){
for(int i = 1; i < arr.length; i++){
for(int j = i; j > 0; j--){
if(arr[j] > arr[j-1]){
int temp = arr[j];
arr[j] = arr[j-1];
arr[j-1] = temp;
}else{
break;
}
}
}
return method3(arr);
}
static String method3(int[] arr){
String str = "";
for( int i = 0; i < arr.length; i++){
str = str + arr[i];
}
return str;
}
}
- method1은 입력받은 n을 배열로 만든다.
- method2는 배열을 내림차순으로 정리한다.
- method3는 해당 배열을 문자열로 바꾼다.
'JAVA' 카테고리의 다른 글
[프로그래머스 2단계 - JAVA] 게임 맵 최단거리 (0) | 2022.09.29 |
---|---|
[프로그래머스 1단계 - JAVA] 하샤드 수 (1) | 2022.09.16 |
[프로그래머스 1단계 - JAVA] 문자열 내 p와 y의 개수 (0) | 2022.09.16 |
[프로그래머스 1단계 - JAVA] 자연수 뒤집어 배열로 만들기 (0) | 2022.09.16 |
[프로그래머스 1단계 - JAVA] 정수 제곱근 판별 (0) | 2022.09.16 |
Comments