합병정렬

    [백준] 11651 - 좌표 정렬하기 2 (자바/Java) : Merge Sort

    문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. 이번에도 merge sort를 이용하여 풀었다. Collection의 sort와 comparable을 이용하면 좀 더 간단하게 될 것 같음! 비교하는 부분만 y 좌표가 같으면 x 좌표를 다시 비교하도록 구현하였다. package BOJ072..

    [백준] 2751 - 수 정렬하기2 (자바/JAVA): 합병 정렬(Merge Sort)

    [백준] 2751 - 수 정렬하기2 (자바/JAVA): 합병 정렬(Merge Sort)

    https://www.acmicpc.net/problem/2751 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 처음에 선택 정렬을 썼다가 시간 초과가 나서 합병 정렬을 사용했는데도 시간 초과가 났다. 그래서 Scanner를 BufferedReader로, sysout println을 BufferedWriter로 바꿨는데도 시간 초과가 났다. 정렬 자체에 문제가 있는 것 같아서 질문을 ..

출처: https://gmnam.tistory.com/157 [Voyager:티스토리]