[프로그래머스] 코딩테스트 연습 - 정렬 Level 2 가장 큰 수

Solution.java

import java.util.*;

class Solution {
    public String solution(int[] numbers) {
        String answer = "";
        
        String[] number = new String[numbers.length];
        
        for (int i = 0; i < numbers.length; i++) {
            number[i] = String.valueOf(numbers[i]);
        }
        
        Arrays.sort(number, new MyComparator());
        
        for (String n : number) {
            answer += n;
        }
        
        if (answer.charAt(0) == '0') answer = "0";
        
        return answer;
    }
}

class MyComparator implements Comparator<String> {
    public int compare(String s1, String s2) {
        return (s2 + s1).compareTo(s1 + s2);
    }
}

어렵게 생각해서 짰는데 막상 제출하고보니 테스트 케이스 하나가 틀렸다...

다음에 다시 도전해봐야겠다.


계속 마지막 테스트 케이스가 틀리기에 질문하기 게시판을 보고

마지막 테스트 케이스가 0이 여러개 들어오는 경우라는걸 알았다..

리턴하기전에 예외처리를 해주었더니 통과했다.

다음부턴 예외상황을 잘 생각해봐야겠다.

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

좋은 웹페이지 즐겨찾기