[문제설명]
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
[제한사항]
- n은 1이상 8000000000 이하인 자연수입니다.
[입출력 예]
n | return |
118372 | 873211 |
내가 작성한 코드
import java.util.Arrays;
import java.util.Collections;
class Solution {
public long solution(long n) {
long answer = 0;
String[] arr = String.valueOf(n).split("");
Arrays.sort(arr, Collections.reverseOrder()); // 내림차순
String change = "";
for(int i=0; i<arr.length; i++) {
change += arr[i];
}
answer = Long.parseLong(change);
return answer;
}
}
String.valueOf(n).split("") 를 통해 long 타입의 n을 String 배열로 변환해준 후,
내림차순으로 정렬해줬다.
change 변수를 하나 생성해 arr에 있는 값들을 넣어주고,
String 형태의 change 변수 값을 Long.parseLong(change)를 통해 long 타입으로 변환해준 후 return
Long.parseLong 메소드가 있는 줄도 모르고, Integer.parseInt 메소드를 사용한 후, long으로 캐스팅 하는 실수를 해서 계속 실패가 떠서 왜 안되지?? 하고있었다.
열공하자 !..
'Algorithm > Programmers' 카테고리의 다른 글
Programmers / Level 1 / 자연수 뒤집어 배열로 만들기 (0) | 2022.06.27 |
---|---|
Programmers / Level 1 / 숫자 문자열과 영단어 (0) | 2022.06.27 |
Programmers / Level 1 / 폰켓몬 (0) | 2022.06.26 |
Programmers / Level 1 / 자릿수 더하기 (0) | 2022.06.26 |
Programmers / Level 1 / 문자열을 정수로 바꾸기 (0) | 2022.06.25 |