알고리즘 공부/프로그래머스

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

HRuler 2020. 8. 31. 19:10

1. 1번째 풀이

import java.util.Arrays;
class Solution {
    public String solution(int[] numbers) {
        String answer = "";
		String [] strings = new String [numbers.length];
		String [] strings2 = new String [numbers.length];
		for(int i = 0; i < numbers.length; i = i + 1) {
			strings[i] = String.valueOf(numbers[i]);
		}
		for(int i = 0; i < strings.length; i = i + 1) {
			int flag = 0;
			for(int j = 0; j < strings.length; j = j + 1) {
				int imsi1 = Integer.parseInt(strings[i] + strings[j]);
				int imsi2 = Integer.parseInt(strings[j] + strings[i]);
				int su1 = Integer.parseInt(strings[i]);
				int su2 = Integer.parseInt(strings[j]);
				if(imsi1 < imsi2) {
					flag = flag + 1;
					continue;
				}else if(imsi1 == imsi2 && su1 < su2) {
					flag = flag + 1;
				}
			}
			strings2[flag] = strings[i];
			
		}
		for(String imsi : strings2){
            answer = answer + imsi;
        }
        return answer;
    }
}

 - 11개 테스트 중 2개 성공

 - 각 자리를 앞, 뒤로 합친 후 결과를 비교해 각 배열 원소의 자리를 재배열하는 방법