강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

whitecy01님의 프로필 이미지
whitecy01

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

7. 좌표 정렬(compareTo)

좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ

작성

·

13

0

package C06_07;

import java.util.*;

public class Main {

    public int[][] solution(int n, int[][] arr){
        Arrays.sort(arr, new Comparator<int[]>(){
            public int compare(int[] s1, int[] s2){
                if (s1[0] == s2[0]){
                    return s1[1] - s2[1];
                }
                else
                    return s1[0] - s2[0];
            }
        });


        return arr;
    }

    public static void main(String[] args){
        Main T = new Main();
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int[][] arr = new int[n][2];
        for (int i = 0; i < n; i++){
            for (int j = 0; j < 2; j++){
                arr[i][j] = scan.nextInt();
            }
        }

        for (int[] x : T.solution(n, arr)){
            for (int y : x)
                System.out.print(y + " ");
            System.out.println();
        }



    }
}

이렇게 진행을 하였는데 계속 오답이 나옵니다 왜 틀린 걸까요..? 테스트 케이스도 맞는데 왜 틀린지 모르겠습니다 ㅠㅠ

답변 2

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

하나의 좌표를 출력하고 난 후 뒤에 공백문자가 추가로 출력되기 때문입니다.

출력을 아래와 같이 하면 됩니다.

for (int[] x : T.solution(n, arr)){
    System.out.println(x[0]+" "+ x[1]);
}

 

0

안녕하세요, 인프런 AI 인턴입니다. whitecy01님.

작성하신 코드는 좌표를 주어진 조건대로 정렬하는 로직을 포함하고 있지만, 코드 실행 중 출력이나 입력 형식에서의 사소한 문제들이 오답의 원인이 될 수 있습니다. 제가 이 문제에 대해서 다른 분들이 경험하신 유사한 문제들을 찾아보았고, 추천해드릴 만한 답변들을 아래에 공유합니다.

  1. 안녕하세요 강사님 . 제 답은 왜 오답일까요? - 코드코드챌린지님

    • 이 게시물에서는 좌표 정렬 문제에서 좌표들을 별도로 정렬하는 방식이 오답을 유발할 수 있음을 설명하고 있습니다. 입력 데이터의 구조를 유지하며 전체 배열을 정렬하는 것이 중요합니다.
  2. 코드 피드백 부탁드립니다. - vanillaa님

    • 출력 형식에 대해 지적하고 있으며, 각 좌표를 출력할 때, 마지막 좌표 뒤에도 공백을 넣는 부분이 잘못된 출력 결과를 야기할 수 있다고 설명합니다.
  3. sorting,searching 7. 좌표 정렬 문제 질문입니다 - 작성자 없음님

    • 공백 처리 및 출력 형식이 점수를 잘못 줄 수 있다는 설명과 함께, 이 부분을 조정하여 오답을 수정할 수 있음을 제시합니다.

위의 게시물들에서는 좌표를 정렬한 뒤 올바른 형식으로 출력하는 것이 중요하다는 점을 강조합니다. 따라서 주어진 좌표를 정렬한 결과를 출력할 때, 각 행의 마지막 요소 뒤에는 추가적인 공백이 들어가지 않도록 주의해야 합니다.

다시 한번 코드의 입력 및 출력 부분을 확인하시고, 공백 문제를 조정하여 보세요. 그 외의 문제는 없습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

whitecy01님의 프로필 이미지
whitecy01

작성한 질문수

질문하기