[11650 - JAVA] 좌표 정렬하기_1
2023. 12. 27. 22:27ㆍAlgorithm
문제
알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오.
- 길이가 짧은 것부터
- 길이가 같으면 사전 순으로
단, 중복된 단어는 하나만 남기고 제거해야 한다.
입력
첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.
출력
조건에 따라 정렬하여 단어들을 출력한다.
import java.util.*;
class Main {
public static void main(String[] ages) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
Integer[][] graph = new Integer[n][2];
for (int i = 0; i < n; i++) {
graph[i][0] = sc.nextInt();
graph[i][1] = sc.nextInt();
}
Arrays.sort(graph, (p1, p2) -> {
if (p1[0].equals(p2[0])) {
return p1[1] - p2[1];
}
else {
return p1[0] - p2[0];
}
});
for (int i = 0; i < n; i++) {
System.out.println(graph[i][0] + " " + graph[i][1]);
}
}
}
문제 자체는 2차원 배열 정렬 사용법을 알기만하면 해결할 수 있는 문제이다.
'Algorithm' 카테고리의 다른 글
[11399 - JAVA] ATM (0) | 2023.12.30 |
---|---|
[1931 - JAVA] 회의실 배정 (0) | 2023.12.30 |
[프로그래머스 - JAVA] 요격 시스템 (0) | 2023.12.20 |
[프로그래머스 - JAVA] 실패율 (0) | 2023.12.15 |
[프로그래머스 - JAVA] 소수 만들기 (0) | 2023.12.10 |