1. 문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
2. 제한 조건
n은 1이상 8000000000 이하인 자연수입니다.
3. 입출력 예nreturn
n | return |
118372 | 873211 |
import java.util.Arrays;
import java.util.Collections;
class Solution {
public long solution(long n) {
long answer = 0;
String str = Long.toString(n); //long n을 String str에 저장하기 위한 형변환
String[] arr = str.split(""); //1
Arrays.sort(arr, Collections.reverseOrder()); //2, 3
str = String.join("", arr); //4
answer = Long.parseLong(str); //return값 long에 맞춰 형변환
return answer;
}
}
//1
split 함수 : String[] arr = str.split("");
- str에 저장된 문자열을 "" 기준으로 나누어 배열에 각각 저장
- long n에 저장된 값을 한 문자 단위로 배열에 저장하기 위해 사용
ex)
String str = "a-b-c-d-e";
String[] arr = str.split("-");
arr 출력값 : [a, b, c, d, e]
//2
Arrays.sort 함수 :Arrays.sort(a);
- 배열 a 내 요소들을 오름차순으로 정렬
- int, char 등 primitive type 배열에서 정렬 지원(String type은 예외로 가능)
- 프로그래머스 코딩 테스트 간 사용 시 import 필수 : import java.util.Arrays;
ex)
int [] a = {4, 2, 5, 3, 6, 1, 1};
Arrays.sort(a);
a 출력값 : [1, 1, 2, 3, 4, 5, 6]
//3
Collections.reverseOrder() 함수 : Arrays.sort(arr, Collections.reverseOrder());
- //2에서 Arrays.sort()를 이용한 배열 arr내 요소들의 오름차순을 내림차순으로 정렬
- String, Integer, Double 과 같은 Object type 배열에서 정렬 지원
- 프로그래머스 코딩 테스트 간 사용 시 import 필수 : import java.util.Collections;
//4
String.join 함수 : str = String.join("", arr);
- arr 배열 내 각각의 요소 뒤에 ""를 추가해 이어붙여 하나의 문자열로 생성
ex)
String apple = "apple";
String[] Apple = apple.split("");
apple = String.join("*", Apple);
apple 출력값 : a*p*p*l*e
[출처]
https://soo-vely-dev.tistory.com/201
'코딩테스트(Level 0~1)' 카테고리의 다른 글
[JAVA, Programmers] 콜라츠 추측(자바) (0) | 2022.11.20 |
---|---|
[JAVA, Programmers] 나머지가 1이 되는 수 찾기(자바) (0) | 2022.11.20 |
[JAVA, Programmers] 하샤드 수(자바) (0) | 2022.11.20 |
[JAVA, Programmers] 정수제곱근 판별(자바) (0) | 2022.11.19 |
[JAVA, Programmers] 자연수 뒤집어 배열로 만들기(자바) (0) | 2022.11.19 |