코딩 08. 내림차순 정렬하기

yuriyaam·2021년 1월 20일
0
post-thumbnail

문제

함수 solution은 정수 n을 매개변수로 입력받습니다.
n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요.
예를들어 n이 118372면 873211을 리턴하면 됩니다.

int n = 118372;
String temp = "";

String num = n + "";
String arr[] = num.split("");

for (int i = 0; i < arr.length - 1; i++) {
  for (int j = i + 1; j < arr.length; j++) {
    if (Integer.parseInt(arr[i]) < Integer.parseInt(arr[j])) {
	temp = arr[i];
	arr[i] = arr[j];
	arr[j] = temp;
     }
  }
}

내림차순 정렬하기는 학원다닐 때 문제풀었던 기억이 있어서 금방 풀었다. 여기서 포인트는 temp이다.

split 함수를 사용해서 정수 하나하나를 배열에 담아야한다. 여기서, split 함수는 String에만 가능하므로 정수 n을 String으로 변경해주었다.

이후,
배열의 첫번째 요소를 기준으로 2, 3, 4, 5 ... 요소와 비교를 하고
배열의 두번째 요소를 기준으로 3, 4, 5, 6 ... 요소와 비교하면서 값을 바꿔나가면 되는데,
값의 위치를 바꾸게 될 때 기존에 있던 값이 사라지므로 temp에 먼저 담아주는 것이다.

0개의 댓글