• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

안녕하세요 강사님 . 제 답은 왜 오답일까요?

21.07.26 01:07 작성 조회수 110

0

import java.util.*;

public class Main {
public static void main(String[] args) {
Main main = new Main();
Scanner in = new Scanner(System.in);

int n;
int[][] arr;

n = in.nextInt();
arr = new int[n][2];
for(int i=0; i<n; i++) {
for(int j=0; j<2; j++) {
arr[i][j] = in.nextInt();
}
}

int[][] result = main.solution(n, arr);

for(int i=0; i<n; i++) {
for (int j = 0; j < 2; j++) {
System.out.print(result[i][j]+" ");
}
System.out.println();
}
}

int[][] solution(int n, int[][] arr) {
int[][] result = new int[n][2];

int[] sortedX = new int[n];
for(int i=0; i< n; i++) {
sortedX[i] = arr[i][0];
}

int[] sortedY = new int[n];
for(int i=0; i< n; i++) {
sortedY[i] = arr[i][1];
}

Arrays.sort(sortedX);
Arrays.sort(sortedY);

for(int i=0; i<n; i++) {
result[i][0] = sortedX[i];
result[i][1] = sortedY[i];
}

return result;
}
}

답변 1

답변을 작성해보세요.

0

안녕하세요^^

X좌표와 Y자표를 각자 따로 정렬한 다음에 그 결과의 순서대로 다시 짝을 지으면 원래 짝이었던 숫자끼리 헤어지는 결과가 나옵니다.

문제의 입력으로 보면 (2, 7)과 (3, 6)이 위 코드 대로 하면 (2, 6), (3, 7) 로 어뚱한 좌표가 되어 버립니다.