-
백준 1181 단어 정렬 | 자바 java | Arrays.sort Comparator BufferedReader BufferedWriter[백준 알고리즘]/[자바 Java] 2024. 1. 22. 16:25728x90반응형
이번 포스팅은 백준 1181번 단어 정렬입니다.
아래 url를 클릭하시면 백준 사이트에서 문제를 볼 수 있습니다.
https://www.acmicpc.net/problem/1181
기본 알고리즘
- 문자열
- 정렬
정렬을 직접 구현하면 시간초과로 오답
Arrays.sort 사용해야함반응형전체 코드
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263import java.io.*;import java.util.Arrays;import java.util.Comparator;public class Main{public static void main(String[] args) throws IOException{BufferedReader br = new BufferedReader(new InputStreamReader(System.in));BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));int n=0;String nStr="";nStr=br.readLine();n=Integer.parseInt(nStr);String arr[] = new String[n];for(int i=0; i<n; i++){arr[i]=br.readLine();}//정렬Arrays.sort(arr, new Comparator<String>(){public int compare(String str1, String str2){if(str1.length()==str2.length()){return str1.compareTo(str2);} else {return str1.length() - str2.length();}}});/*compare 함수는 return이 양수이면 자리 교체, 음수나 0이면 자리 유지한다 */// String a="abc", c="cba";// System.out.println(a.compareTo(c)); //-2// System.out.println(a.compareTo(a)); //0// System.out.println(c.compareTo(a)); //2//중복제거String arr2[] = new String[n];int arr2Size=0;boolean hasStr = false;for(int i=0; i<n; i++, hasStr=false){for(int j=i+1; j<n; j++){if(arr[i].equals(arr[j])){hasStr = true;break;}}if(!hasStr){arr2[arr2Size++]=arr[i];}}for(int i=0; i<arr2Size; i++){bw.write(arr2[i]);bw.newLine();}bw.flush();bw.close();}}cs 728x90반응형'[백준 알고리즘] > [자바 Java]' 카테고리의 다른 글
백준 10814 나이순 정렬 | 자바 java | Arrays.sort Comparator BufferedReader BufferedWriter (0) 2024.01.22 백준 2751 수 정렬하기 2 | 자바 java | Arrays.sort BufferedReader BufferedWriter (0) 2024.01.22 백준 10866 덱 | 자바 java | BufferedReader BufferedWriter (0) 2024.01.18 백준 10845 큐 | 자바 java | BufferedReader BufferedWriter (0) 2024.01.18 백준 10828 스택 | 자바 java | BufferedReader BufferedWriter (0) 2024.01.12