본문 바로가기

Android ᙏ̤̫͚/차근차근 JAVA

[백준 11651번] 좌표 정렬하기 2

 

BOJ11651

 

11651번: 좌표 정렬하기 2

첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.

www.acmicpc.net

 

[문제]

2차원 평면 위의 점 N개가 주어진다.

좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오.

 

<알고리즘 분류> 정렬

 

[input]

첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 

둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000)

좌표는 항상 정수이고, 위치가 같은 두 점은 없다.

[output]

첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다.

 


 

 


 

[풀이 방법]

  1. BufferedReader와 BufferedWriter 사용하여 입출력받기

  2. 입력받을 점의 개수 입력받아 변수 N에 저장

  3. Point 객체 생성하여 N쌍의 x좌표와 y좌표 입력받기

  4. x좌표 먼저 정렬 후, y좌표 정렬시켜줌

  5. BufferedWriter 활용하여 정렬한 Point 객체 출력해줌 (bw.flush( ))

 


 

성공 코드