알고리즘 문제 (63): 정렬 하여 '수 열' 문 제 를 해결 합 니 다.

1536 단어 알고리즘
제목 설명
n 개의 정수 가 설치 되 어 있 고 그들 을 한 줄 로 연결 하여 가장 큰 여러 개의 정 수 를 구성한다.예 를 들 어 n = 3 시 에 3 개의 정수 가 13, 312, 343 이 고 연 결 된 최대 정 수 는 34331213 이다.예 를 들 어 n = 4 시 에 4 개의 정수 가 7, 13, 4, 246 로 연 결 된 최대 정 수 는 7424613 이다.
입력 설명:
       ,          ,        N(N<=100),     N  (      1000,    )。

출력 설명:

예시 1
입력
2
12 123
4
7 13 4 246

출력
12312
7424613

분석 하 다.
숫자 에 따라 정렬 만 하면 된다.예 를 들 어 13, 312, 343 세 개의 숫자, 첫 번 째 숫자 가 가장 큰 것 은 343 과 312 이 고 앞 에 있 는 것 은 이 두 개의 숫자 중에서 선택 하 는데 이 두 번 째 숫자 중 두 번 째 숫자 가 가장 큰 것 은 343 이 므 로 343 이 가장 앞 선다.그 다음 에 13 과 312 줄 을 서 세 요.마지막 순 서 는 343, 312, 13.
두 개의 수 를 비교 할 때 문자열 을 통 해 's1 + s2' > 's2 + s1' 을 추가 할 수 있 습 니 다.
자주 사용 하 는 정렬 알고리즘 은 모두 사용 할 수 있 지만 두 개의 수 를 비교 하 는 데 는 위의 방법 에 따라 비교 해 야 한다.병합 정렬 을 사용 합 니 다.
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        int[] arr = new int[n];
        for(int i=0; i

좋은 웹페이지 즐겨찾기