티스토리 뷰
🔶 String
의 compareTo()
문자열의 사전적 값을 비교한다.
1. s1 == s2 : 0
2. s1 > s2 : 긍정값
3. s1 < s2 : 부정값
🔶1> HashMap
, Iterator
사용
import java.io.*;
import java.util.*;
// 210328
/*
# String의 compareTo()
- 문자열의 사전적 값을 비교한다.
1. s1 == s2 : 0
2. s1 > s2 : 긍정값
3. s1 < s2 : 부정값
*/
public class Main_BJ_1181_단어정렬 {
public static void main(String[] args) throws Exception {
// System.setIn(new FileInputStream("res/input_BJ_1181_단어정렬.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = stoi(br.readLine());
HashSet<String> hash = new HashSet<>();
String str;
for(int i=0; i<N; i++) {
str = br.readLine();
hash.add(str);
}
String[] arr = new String[hash.size()];
Iterator iter = hash.iterator();
int idx = -1;
while(iter.hasNext()) {
arr[++idx] = (String) iter.next();
}
Arrays.sort(arr, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
if(o1.length()==o2.length()) {
return o1.compareTo(o2);
}
return Integer.compare(o1.length(), o2.length());
}
});
// 출력
StringBuilder sb = new StringBuilder();
for(String s: arr) {
sb.append(s + "\n");
}
System.out.println(sb.toString());
br.close();
}
static int stoi(String str) {
return Integer.parseInt(str);
}
}
🔶2> 출력할 때 중복 검사
import java.io.*;
import java.util.*;
// 210328
public class Main_BJ_1181_단어정렬_2 {
public static void main(String[] args) throws Exception {
// System.setIn(new FileInputStream("res/input_BJ_1181_단어정렬.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = stoi(br.readLine());
String[] arr = new String[N];
for(int i=0; i<N; i++) {
arr[i] = br.readLine();
}
// 정렬
Arrays.sort(arr, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
if(o1.length() == o2.length()) {
return o1.compareTo(o2);
}
return Integer.compare(o1.length(), o2.length());
}
});
// 중복 제거하며 출력
StringBuilder sb = new StringBuilder();
sb.append(arr[0] + "\n");
for(int i=1; i<N; i++) {
if(!arr[i-1].equals(arr[i])) {
sb.append(arr[i] + "\n");
}
}
System.out.println(sb.toString());
br.close();
}
static int stoi(String str) {
return Integer.parseInt(str);
}
}
'코딩테스트 > 백준' 카테고리의 다른 글
[BJ] 16973. 직사각형 탈출 (0) | 2021.04.01 |
---|---|
[BJ] 2108. 통계학 (0) | 2021.03.29 |
[BJ] 11651. 좌표 정렬하기2 (0) | 2021.03.28 |
[BJ] 11650. 좌표 정렬하기 (0) | 2021.03.28 |
[BJ] 14502. 연구소 (0) | 2021.03.26 |
댓글