코딩테스트(Level 0~1)

[JAVA, Programmers] 정수 내림차순으로 배치하기(자바)

justdoIT0730 2022. 11. 20. 15:59
728x90
728x90

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;
	}
}
728x90

//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://ga0lee.tistory.com/43

 

[알고리즘] 프로그래머스(Level1) - 정수 내림차순으로 배치하기(Java)

https://programmers.co.kr/learn/courses/30/lessons/12933 코딩테스트 연습 - 정수 내림차순으로 배치하기 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로

ga0lee.tistory.com

https://soo-vely-dev.tistory.com/201

 

[JAVA] int, String배열의 오름차순, 내림차순 정렬 개념 및 예제(Arrays.sort(), Collections.reverseOrder())

[배열의 선언 및 초기화] //배열의 선언과 크기 할당 int[] arr = new int[100]; //배열의 선언과 값 초기화 int[] arr = {10, 20, 30, 40, 50}; [java.util.Arrays] Java에서 배열의 값을 정렬하는 경우 java.util.Arrays 클래

soo-vely-dev.tistory.com

https://jamesdreaming.tistory.com/84

 

[ 자바 코딩 ] Java split() 함수로 문자열 자르기

안녕하세요. 제임스 입니다. 이번에는 Java 에서 String 을 다룰때 유용하게 사용할 수 있는 함수 중 한가지인 split 함수에 대해 알아 보겠습니다. ■ String[] split(String regex) split 함수는 입력받은 정

jamesdreaming.tistory.com

https://nochoco-lee.tistory.com/505

728x90
728x90