[프로그래머스] LEVEL2 가장 큰 수 JAVA

Pixel Dophin·2023년 9월 9일
0

프로그래머스

목록 보기
52/55

가장 큰 수

문제링크

풀이

정렬
1. numbers의 원소를 int에서 string 형태로 변환한다.
2. 문제의 조건에 맞게 comparator를 활용하여 변경한다.
3. 모든 원소가 0인 경우를 고려하여 answer="0000" 와 같은 경우를 "0"으로 변경한다.

+) zeroCount라는 변수를 통해 문자열의 길이와 0의 개수를 비교하여 모든 원소가 0인 경우를 찾도록 구현하였다. 하지만, 다른 사람 풀이의 경우 문제 조건에 따라 첫 문자가 "0"인 경우는 모든 원소임을 활용해 해당 부분을 해결하였다.

코드

import java.util.*;

class Solution {
    public String solution(int[] numbers) {
        String answer = "";
        
        String[] numbersStr = new String[numbers.length];
        for (int i = 0; i < numbers.length; i++) {
            numbersStr[i] = String.valueOf(numbers[i]);
        }
        
        Arrays.sort(numbersStr, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) { 
                return (o2 + o1).compareTo(o1 + o2);
            }
        });
        
        int zeroCount = 0;
        for (int i = 0; i < numbers.length; i++) {
            answer += numbersStr[i];
            zeroCount += numbersStr[i].equals("0") ? 1 : 0;
        }
        
        if (zeroCount == numbers.length) {
            answer = "0";
        }
        
        return answer;
    }
}
profile
안녕 👋 성장하고픈 개발자 💻 입니다

0개의 댓글

관련 채용 정보