[백준 2204번] 도비의 난독증 테스트
[백준 2204번] 도비의 난독증 테스트
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.ArrayList; import java.util.Collections; public class 백준_손수경_정답_2204 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); while (true) { int n = Integer.parseInt(br.readLine()); ArrayList<String> list = new ArrayList<>(); if (n == 0) { break; } for (int i = 0; i < n; i++) { String word = br.readLine(); list.add(word); } //대소문자 상관없이 오름 Collections.sort(list, String.CASE_INSENSITIVE_ORDER); bw.write(list.get(0) + "\n"); } bw.close(); } } | cs |
처음에는 문자열 배열을 만들어서 Arrays.sort() 를 사용하려고 했다. 하지만 배열을 만들 때, 초기화 하는 것이 아니라 선언하는 것이므로 배열의 버퍼 크기 설정이 애매하다. .sort는 배열에 있는 모든 요소들을 다 sort 하는데, 거기에 NULL 이 껴있으면 에러가 뜨기 때문이다. 그래서 ArrayList를 만들어서 이 리스트를 대소문자 상관없이 오름차순으로 정렬시키고자 하였다.
Arrays.sort()
얘는 객체 타임 정렬로, 객체가 완전 초기화 되지 않은 이상 조금 힘들 것 같다^^
Collections.sort()
얘는 List 타임 정렬로, 딱 add한 만큼에 대한 정렬이 이루어지기 때문에 입력값을 정렬시키고자 한다면 이 메서드를 사용하는 것이 맞다.
댓글남기기