728x90
백준 10814번 나이순 정렬
내가 떠올린 풀이 해설
정렬 문제이다. Arrays.sort()를 사용해서 정렬을 한다. 또한 Comparator를 이용한다. o1은 첫 번째 행이고 arr [0][0]이다. o2는 두 번째 행이고 arr [1][0]이다. o1[0] - o2[0] 정렬해준다.
정확한 풀이
import java.io.*;
import java.util.*;
public class Baek10814 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String [][] arr = new String[n][2];
for(int i = 0; i < n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
arr[i][0] = st.nextToken();
arr[i][1] = st.nextToken();
}
Arrays.sort(arr, new Comparator<String[]>() {
@Override
public int compare(String[] o1, String[] o2) {
return Integer.parseInt(o1[0]) - Integer.parseInt(o2[0]);
}
});
for(int i = 0; i < n; i++) {
System.out.println(arr[i][0]);
System.out.println(arr[i][1]);
}
}
}
백준 11650번 좌표 정렬하기
내가 떠올린 풀이 해설
기본 정렬 문제이다. Point 클래스를 만들어서 Comparable를 이용해서 정렬을 진행했다. this.x 와 o.x가 같으면 y값으로 비교했다.
import java.io.*;
import java.util.*;
public class Baek11650 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
ArrayList<Point> arr = new ArrayList<>();
for(int i = 0; i < n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
arr.add(new Point(x, y));
}
Collections.sort(arr);
for(Point o : arr) {
System.out.println(o.x + " " + o.y);
}
}
}
class Point implements Comparable<Point> {
int x;
int y;
Point(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public int compareTo(Point o) {
if(this.x == o.x) {
return this.y - o.y;
}
else {
return this.x - o.x;
}
}
}
오늘의 회고
복습을 끝내고 시간이 남아서 정렬 문제 2문제를 풀었습니다. 기본적인 정렬 문제라 시간이 많이 걸리지는 않았습니다. 아직 배워야 하는 알고리즘들이 많은데 너무 성급하게 넘어가지 말고 정석대로 공부하자.
728x90
'알고리즘 > 알고리즘 문제풀이' 카테고리의 다른 글
Do it! 알고리즘 코딩 테스트 (29번 ~ 31번) (0) | 2022.05.31 |
---|---|
백준) 스택, 문자열 (0) | 2022.05.30 |
Do it! 알고리즘 코딩 테스트 (26번 ~ 28번) (0) | 2022.05.26 |
백준)DFS (0) | 2022.05.25 |
Do it! 알고리즘 코딩 테스트 (22번 ~ 25번) (0) | 2022.05.24 |