반응형
https://www.acmicpc.net/problem/26265
소스코드
import java.util.*;
import java.io.*;
class P26265 {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
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();
}
// 이차원 문자열 배열 정렬을 위해서는 람다식을 활용하여 compare를 재정의 해야함
Arrays.sort(arr,new Comparator<String[]>() {
@Override
public int compare(String[] o1, String[] o2) {
if (o1[0].equals(o2[0])) return o2[1].compareTo(o1[1]);
else return o1[0].compareTo(o2[0]);
}
});
for (String[] m: arr) {
sb.append(m[0]+" "+m[1]).append("\n");
}
System.out.println(sb);
}
}
풀이
★ 요즘 계속 정렬문제를 풀고 있는데 자바의 정렬이 다른 언어에 비해서 꽤 까다로운 거 같습니다 ㅠㅠ
★ 2차원 문자열 배열을 정렬하기 위해선 compare 함수를 재정의 해줘야 합니다 ! 재정의 해줄 때 인자 값으로 배열을 받아주고, 해당 문제의 경우에는 멘토가 같을 경우, 멘티를 사전 순 내림차순으로 정렬해줬습니다.
반응형
'Algorithm > 백준' 카테고리의 다른 글
[백준 알고리즘] 20529번: 가장 가까운 세 사람의 심리적 거리 (JAVA) (0) | 2024.01.31 |
---|---|
[백준 알고리즘] 2338번: 긴자리 계산 (JAVA) (0) | 2024.01.25 |
[백준 알고리즘] 7662번: 이중 우선순위 큐 (JAVA) (0) | 2024.01.23 |
[백준 알고리즘] 14940번: 쉬운 최단거리 (JAVA) (0) | 2024.01.20 |
[백준 알고리즘] 22252번: 정보 상인 호석 (JAVA) (0) | 2024.01.17 |