728x90
https://www.acmicpc.net/problem/1181
1181번: 단어 정렬
첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.
www.acmicpc.net
풀이)
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
public class Main_BJ_1181_단어정렬 {
public static void main(String[] args) throws Exception{
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 s1, String s2){
if(s1.length() == s2.length())
return s1.compareTo(s2);
else
return s1.length() - s2.length();
}
});
System.out.println(arr[0]);
for(int i=1; i<n; i++) {
if(!arr[i].equals(arr[i-1]))
System.out.println(arr[i]);
}
}//main
}
문자열 문제를 간단히 풀어봤다.
Comparator에서 length를 어떻게 비교하지 했는데, 생각보다 간결함...
또한, 문자열 비교(숫자도 가능)할 때 compareTo를 쓴다는 사실을 잊지 말자!
참고한 블로그!
https://st-lab.tistory.com/112
[백준] 1181번 : 단어 정렬 - JAVA [자바]
www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문
st-lab.tistory.com
728x90
'코테 > 백준' 카테고리의 다른 글
백준 2178 미로 탐색(JAVA) (0) | 2023.01.31 |
---|---|
백준 11866 요세푸스 문제0(JAVA) (0) | 2023.01.30 |
백준 11725 트리의 부모찾기(JAVA) (0) | 2023.01.29 |
백준 1271 엄청난 부자2(JAVA) (0) | 2023.01.28 |
백준 2579 계단 오르기(JAVA) (0) | 2023.01.27 |