[프로그래머스] 정수 내림차순으로 배치하기

김서영·2021년 12월 21일

코딩테스트 스터디

목록 보기
3/11

정수 내림차순으로 배치하기

우선 long type으로 정수를 입력 받고 이를 String으로 형변환.
String으로 형변환을 진행했으면 이를 또 array로 형변환.
array 상태에서 한 번 내림차순으로 정렬.

그 후 다시 이 array를 string으로 변환.
String -> Long으로 형변환 후에 return해주기.

문제는 어렵지 않았으나, 외워야 할 문법이 늘어났다.....

문법

형변환

long answer = 0;
String n_ = Long.toString(n);
String answer_ = "987321";
answer = Long.parseLong(answer_);

String index에 해당하는 값 꺼내기

String n_ = Long.toString(n);
arr[n_.length()-i-1] = Long.valueOf(n_.charAt(i)-'0');

Array Sort

오름차순의 경우, 그냥 Array.sort()

내림차순의 경우는 복잡함...
public static void sort(@NotNull T[] a,@Nullable java.util.Comparator<? super T> c)
Arrays.sort(arr, Collections.reverseOrder());
Collection을 이용하고, 배열을 넣는 자리 또한, list 형태?로 해줘야 함.

1차 시도

import java.util.Arrays;
import java.util.Collections;

class Solution {
    public static long solution(long n) {
        long answer = 0;
        String n_ = Long.toString(n);
        Long [] arr = new Long[n_.length()];
        for (int i=0; i<n_.length(); i++){
            arr[n_.length()-i-1] = Long.valueOf(n_.charAt(i)-'0');
        }
        Arrays.sort(arr, Collections.reverseOrder());
        String answer_ = "";
        for (int i=0; i<n_.length(); i++){
            answer_ += arr[i];
        }
        answer = Long.parseLong(answer_);
        return answer;
    }}
   
profile
하지만 저는 이겨냅니다. 김서영이죠?

0개의 댓글