728x90
🔥 문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰 것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를 들어 n이 118372면 873211을 리턴하면 됩니다.
🔥 제한 조건
n은 1 이상 8000000000 이하인 자연수입니다.
🔥 입출력 예
n | return |
118372 | 873211 |
🔥 코드
import java.util.Arrays;
import java.lang.StringBuilder;
class Solution {
public long solution(long n) {
long answer = 0;
char [] strArr = Long.toString(n).toCharArray();
Arrays.sort(strArr);
String resultStr = new StringBuilder(new String(strArr)).reverse().toString();
answer = Long.parseLong(resultStr);
return answer;
}
}
🔥 문제 풀이 과정
- 일단 return 타입은 long이고 이걸 역순으로 정렬하려면 문자열로 변환해 역순을 한 다음 다시 Long 타입으로 변경해야겠다고 생각했다
- 그래서 일단 문자열로 변경한 후 char 배열에 담았고 1차로 sort()를 통해 오름차순 정렬을 한 후
- 현재 형태는 char 이니까 StringBuilder에 배열을 문자열로 만들어 넣어 준후 StringBuilder 안에 있는 reverse()를 사용해 내림차순 정렬을 했고 정렬된 문자열을 다시 Long 타입으로 변경해 주었다.
728x90
'프로그래머스' 카테고리의 다른 글
[프로그래머스 MYSQL] 조건에 맞는 회원수 구하기 (0) | 2024.07.03 |
---|---|
[프로그래머스 MYSQL] 경기도에 위치한 식품창고 목록 출력하기 (0) | 2024.07.03 |
[프로그래머스 JAVA] 나머지가 1이 되는 수 찾기 (0) | 2024.07.03 |
[프로그래머스 JAVA] x만큼 간격이 있는 n개의 숫자 (0) | 2024.07.03 |
[프로그래머스 JAVA] 평균 구하기 (0) | 2024.07.03 |