728x90
반응형
백준
좌표 정렬하기 2
https://www.acmicpc.net/problem/11651
- 오늘의 학습 키워드 : 람다식
- 공부한 내용 본인의 언어로 정리하기
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int[][] point = new int[N][2]; for (int i = 0; i < N; i++) { String[] input = br.readLine().split(" "); point[i][0] = Integer.parseInt(input[0]); point[i][1] = Integer.parseInt(input[1]); } Arrays.sort(point, (a, b) -> a[1] != b[1] ? a[1] - b[1] : a[0] - b[0]); for (int i=0; i<N; i++) System.out.println(point[i][0] + " " + point[i][1]); } }
- 오늘의 회고
처음에 Comparator 객체를 사용해서 문제를 풀었는데 메모리 초과가 나서 다른 방안을 생각해보았다.
람다식을 사용하니 깔끔하게 문제를 풀이할 수 있었다!
람다식 유용하게 쓰일 것 같으니 손에 익혀놓자 ㅎ_ㅎ
Comparator 객체로 푼 풀이 (메모리 초과)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[][] point = new int[N][N];
for (int i=0; i<N; i++) {
String[] input = br.readLine().split(" ");
point[i][0] = Integer.parseInt(input[0]);
point[i][1] = Integer.parseInt(input[1]);
}
Arrays.sort(point, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
if (o1[1] == o2[1])
return o1[0] - o2[0];
return o1[1] - o2[1];
}
});
for (int i=0; i<N; i++) {
System.out.println(point[i][0] + " " + point[i][1]);
}
}
}
99클럽 1기를 수강하면서 작성한 글입니다.
728x90
반응형
'Blog > Education' 카테고리의 다른 글
99클럽 코테 스터디 6일차 TIL + Stack (0) | 2024.03.30 |
---|---|
99클럽 코테 스터디 5일차 TIL + Stack (0) | 2024.03.29 |
99클럽 코테 스터디 4일차 TIL + 패턴 분석 (0) | 2024.03.28 |
99클럽 코테 스터디 2일차 TIL + Map put/get swap (0) | 2024.03.26 |
99클럽 코테 스터디 1일차 TIL + Map, getOrDefault 메서드 (0) | 2024.03.25 |
댓글