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

JESS YANG·2021년 5월 2일
0

프로그래머스

목록 보기
10/13
post-thumbnail

문제

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

내 코드

public String solution(int[] numbers) {
	StringBuilder rlt = new StringBuilder();
    	//1
	String [] strArr = new String[numbers.length];
	
	for(int i=0; i<numbers.length; i++) {
		strArr[i] = Integer.toString(numbers[i]);
	}
	//2
	Comparator comp = new Comparator<String>() {

		@Override
		public int compare(String o1, String o2) {
			return (o2+o1).compareTo(o1+o2);
		}
	};
	Arrays.sort(strArr, comp );
	
    	//3
	for(int i=0; i<strArr.length; i++) {
		rlt.append(strArr[i]);
	}
	//4 원소가 0으로만 구성될경우
	if(strArr[0].equals("0")) {
		return "0";
	}
	
	return rlt.toString();
}

풀이

주어진 정수 배열을 조합해서 가장 큰 수를 반화 해야 한다. 나는 정수를 String 배열에 담고 문자열을 역배열로 정렬을 시키는 방향으로 문제를 풀었다.
1. strArr 배열 선언하고 정수를 문자열 배열에 담는다.
2. 정렬 방법 정의하고 정렬시킨다.
3. 반복문을 돌면서 결과값에 문자열을 덧붙인다.
4. 마지막으로 모든 원소가 0으로 구성될 경우를 검사한다.(마지막 케이스 통과)

0개의 댓글