forDevLife
[백준] 1181 - 단어 정렬 본문
- 방법 1
hashSet으로 입력되는 문자를 받은 후, 중복 제거해서 ArrayList에 넘긴다.
넘겨진 ArrayList를, compare를 override해서 정렬한 후 출력한다.
- 팁1 : new ArrayList<>(hashSet)을 통해 해당 내용으로 ArrayList를 생성할 수 있다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
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());
HashSet<String> hashSet = new HashSet<>();
for(int i=0; i<N; i++) {
hashSet.add(br.readLine());
}
ArrayList<String> arr = new ArrayList<>(hashSet);
Collections.sort(arr, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
if (o1.length() == o2.length()) {
return o1.compareTo(o2);
} else
return o1.length() - o2.length();
}
});
for(String x : arr) {
System.out.println(x);
}
}
}
- 방법 2
ArrayList는 Collections.sort를 통해서, String은 Arrays.sort를 통해 정렬 가능하다.
HashSet없이, 정렬된 배열에 대해서 이전 값과 동일하지 않을 경우에만 StringBuilder에 추가하는 방식으로 구현하였다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
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());
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);
} else
return o1.length() - o2.length();
}
});
StringBuilder sb = new StringBuilder();
sb.append(arr[0]).append('\n');
for(int i=1; i<N; i++) {
if(!arr[i].equals(arr[i-1])) {
sb.append(arr[i]).append('\n');
}
}
System.out.println(sb);
}
}
'알고리즘' 카테고리의 다른 글
[백준] 1920 - 수 찾기 (0) | 2021.06.15 |
---|---|
[백준] 1259 - 팰린드롬수 (0) | 2021.06.15 |
[백준] 1018 - 체스판 다시 칠하기 (0) | 2021.06.14 |
[백준] 1417 - 국회의원 선거 (0) | 2021.06.14 |
[백준] 1343 - 폴리오미노 (0) | 2021.06.14 |
Comments