꾸물꾸물 졔의 개발공부
백준 11650 - 좌표 정렬 (JAVA) + Arrays.sort 람다식 본문
Arrays.sort 람다식을 활용하여 접근
new Comparator 를 사용해도 되지만 , 이번에는 람다식을 사용해 보았다 .
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
package jihye01;
import java.util.*;
import java.io.*;
public class bj11650 {
public static void main(String args[])throws IOException{
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
int num= Integer.parseInt(br.readLine());
String s[]= new String [num];
int get[][]= new int[num][2];
for(int i=0; i<num; i++) {
s[i]=br.readLine();
}
StringTokenizer st ;
for(int i=0; i<num; i++) {
st=new StringTokenizer(s[i], " ");
for(int j=0; j<2; j++) {
get[i][j]= Integer.parseInt(st.nextToken());
}
}
// 조건에 따라 정렬
Arrays.sort(get, (e1,e2) -> {
if(e1[0] == e2[0])
return e1[1]-e2[1];
else
return e1[0]-e2[0];
});
for(int i=0; i<num ; i++) {
System.out.println(get[i][0]+ " "+ get[i][1]);
}
}
}
|
cs |
BufferedReader 를 통해서, 입력값을 입력받고,
BufferedReader 를 사용하면 한문자당 인식하지 못하고 한줄로 인식하기 때문에 StringTokenizer 를 사용하여, ' 3 4 ' 와 같은 입력값을 각 배열 get[i][0] = 3, get[i][1] = 4 로 나누어서 저장해 주었다.
Arrays.sort ( get, (e1, e2) -> ) 라는 람다식을 활용하여서, 배열 e1 과 e2 를 비교하여 정렬하였다 .
e1[0] 과 e2[0] , 즉 , 두 배열의 x 좌표가 같다면, y 좌표를 비교하여서 더 작은 값을 가진것을 앞으로 정렬하고 ,
두배열의 x 좌표가 다르다면, x 좌표를 비교하여서 더 작은 값을 앞으로 정렬하였다 .
'알고리즘 > 백준' 카테고리의 다른 글
백준 10825 - 국영수 (JAVA) (0) | 2021.11.25 |
---|---|
백준 1874 - 스택수열 (JAVA) (0) | 2021.11.24 |
백준 1181 - 단어정렬 (JAVA) (0) | 2021.09.28 |
백준 4673 - 셀프넘버 (JAVA) (0) | 2021.09.13 |
백준 18258 - JAVA 큐 구현하기 (0) | 2021.07.16 |