본문 바로가기

알고리즘

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

728x90
 
문제

2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오.

입력

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

출력

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

예제 입력 1 복사

5
0 4
1 2
1 -1
2 2
3 3

예제 출력 1 복사

1 -1
1 2
2 2
3 3
0 4

 

출처

문제 풀이

첫 번째 값은 N으로 총 좌표으로 뺴준 뒤 문제를 풀었습니다.

 

빈 배열을 선언한 뒤 배열안에 먼저 sort를 사용하기 전에 str인 문자들을 숫자로 바꾸어 주었습니다

 

그런 다음 sort를 사용해서 y를 기준으로 순서를 만들어주고 같을 경우에는 x를 기준으로 순서대로 arr 배열에 넣어주었습니다.

 

마지막으로 forEach를 사용해서 답을 제출하기 좋게 가공해주었습니다.