티스토리 뷰

728x90

https://school.programmers.co.kr/learn/courses/30/lessons/42746

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

프로그래머스 코딩테스트 고득점 Kit의 정렬 Level 2 문제다.

 

 

 

numbers를 문자열로 변환해 배열에 넣고,그 배열을 내림차순으로 정렬한다.

정렬한 순서대로 이어붙여 return하면 된다.

 

문자열을 이어붙이려는 경우 String의 +=보다 StringBuilder의 append를 사용하는게 훨씬 효율적이다.

(String은 +=할 때마다 새로운 주소의 객체를 생성하기 때문)

 

 

또한 입력으로 [0,0,0]이 들어올 경우 000이 return될 수 있으므로

정렬 후 가장 앞의 원소가 0이라면 그냥 0만 return한다.

 

import java.util.Arrays;

class Solution {
    public String solution(int[] numbers) {
        StringBuilder sb = new StringBuilder();
        String[] str = new String[numbers.length];
        
        for(int i=0;i<numbers.length;i++)
            str[i] = String.valueOf(numbers[i]);
        
        Arrays.sort(str, (o1, o2) -> (o2 + o1).compareTo(o1 + o2));
        
        if(str[0].equals("0")) return "0";
        
        for(String s : str)
            sb.append(s);
        
        return sb.toString();
    }
}

 

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함