본문 바로가기

PS/프로그래머스

[프로그래머스] 가장 큰 수 - JAVA(자바)

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

 

프로그래머스

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

programmers.co.kr

풀이:

import java.util.Arrays;
import java.util.Comparator;
import java.util.stream.IntStream;

class Solution {
    public String solution(int[] numbers) {
        StringBuilder sb = new StringBuilder();
        int sum = 0;
        for (int number : numbers) {
            sum += number;
        }
        if(sum == 0) return "0";
        String[] array = IntStream.of(numbers).mapToObj(String::valueOf).toArray(String[]::new); // String 문자열로 변환
        Arrays.sort(array, new comparator());
        for (String str : array) {
            sb.append(str);
        }
        return sb.toString();
    }
}

class comparator implements Comparator<String> {

    @Override
    public int compare(String o1, String o2) {
        Integer val1 = Integer.valueOf(o1 + o2);
        Integer val2 = Integer.valueOf(o2 + o1);
        return val2 - val1;
    }
}
public class Main {

    public static void main(String[] args){
        Solution solution = new Solution();
        String answer = solution.solution(new int[]{0,0,1});
        System.out.println("answer = " + answer);

    }
}