728x90
▶ 문제
▶ 풀이방법.
정말 간단한 문제인데 복잡하게 풀 생각을 한 나는 진짜 바보인가,,,ㅜㅜㅜㅜㅜ
Arrays.sort()를 해결하면 간단하게 해결될 문제인데,,,ㅜ
- 첫번째로 풀이한 방법
class Solution {
public long solution(long n) {
String num = String.valueOf(n);
int[] arr = new int[num.length()];
for(int i = 0; i < num.length(); i++) arr[i] = Integer.parseInt(num.substring(i,i+1));
long answer = 0;
int c = 0;
String str = ""; //결과값 담기위한 공간
while(c < num.length()){
int max = 0; //최대값 저장.
int index = 0; //max를 담고 있는 공간 0으로 초기화하기 위해 index값 받기위함.
for(int i = 0; i < num.length(); i++){
if(max < arr[i]){
max = arr[i];
index = i;
}
}
str += String.valueOf(max);
arr[index] = 0; //max값 들어가있는 arr배열위치 0으로 초기화
c++;
}
answer = Long.valueOf(str);
return answer;
}
}
↑정말 바보같은 풀이,,,,ㅜ
- Arrays.sort()사용.
++Arrays.sort()사용을 위한 패키지 잘 선언해주기!!
import java.util.*;
class Solution {
public long solution(long n) {
String num = String.valueOf(n);
int[] arr = new int[num.length()];
for(int i = 0; i < num.length(); i++) arr[i] = Integer.parseInt(num.substring(i,i+1));
Arrays.sort(arr); //배열 오름차순 정렬
long answer = 0;
String str = "";
for(int i = num.length()-1; i >= 0 ; i--) str += arr[i]; //역으로 저장
answer = Long.valueOf(str); //long타입으로 변경
return answer;
}
}
- Arrays.sort() + StringBuilder()사용.
import java.util.*;
class Solution {
public long solution(long n) {
String num = String.valueOf(n);
int[] arr = new int[num.length()];
for(int i = 0; i < num.length(); i++) arr[i] = Integer.parseInt(num.substring(i,i+1));
Arrays.sort(arr);
long answer = 0;
StringBuilder sb = new StringBuilder(); //StringBuilder()사용.
for(int a : arr) sb.append(a);
answer = Long.valueOf(sb.reverse().toString()); //StringBuilder뒤집기 : reverse().toString()
return answer;
}
}
728x90
'Algorithm > PROGRAMMERS[Java]' 카테고리의 다른 글
Lv1. 자릿수 더하기 (0) | 2022.04.16 |
---|---|
Lv1. 자연수 뒤집어 배열로 만들기 (0) | 2022.04.16 |
Lv1. 정수 제곱근 판별(수정해야함) (0) | 2022.03.12 |
Lv1. 제일 작은 수 제거하기 (1) | 2022.03.12 |
Lv1. 짝수와 홀수 (0) | 2021.09.28 |