-
[java] 백준 알고리즘 1181번 단어 정렬 풀이알고리즘/백준 알고리즘 2018. 7. 4. 16:54
이 문제를 풀면서 알게 된 유용한 개념은
HashSet은 중복을 허용하지 않는다! 이다.
HashSet을 활용하면 출력 조건에서 '같은 단어가 여러번 입력된 경우에는 한번씩만 출력한다'를 만족시킬 수 있다.
그리고 Arrays.sort 기능에 숫자만 배열 가능한게 아니라 문자도 알파벳 순으로 배열하는 기능도 있다.
추가적으로, Comparator 형식으로 로직을 만들어서 비교할 수도 있다.
이들을 활용하면 풀 수 있다.
* 풀이 소스
123456789101112131415161718192021222324252627282930313233343536373839public class Baekjoon1181{static StringTokenizer st;public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));st = new StringTokenizer(br.readLine());int N = Integer.parseInt(st.nextToken());HashSet<String> sortedSet = new HashSet<>();for(int i=0; i<N; i++) {st = new StringTokenizer(br.readLine());sortedSet.add(st.nextToken()) ;}int setSize = sortedSet.size();String[] sortedArray = new String[setSize];sortedSet.toArray(sortedArray);Arrays.sort(sortedArray);Arrays.sort(sortedArray, new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {return Integer.compare(o1.length(), o2.length());}});for(String output: sortedArray) {bw.write(output);bw.newLine();}bw.flush();}}cs '알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[java] 백준 알고리즘 1260번 DFS와 BFS 풀이 (0) 2018.07.09 [java] 백준 알고리즘 1929번 소수 구하기 풀이 (0) 2018.07.04 [java] 백준 알고리즘 1427번 소트인사이드 풀이 (0) 2018.07.04 [java] 백준 알고리즘 2108번 통계학 풀이 (0) 2018.07.04 [java] 백준 알고리즘 2751번 수 정렬하기2 풀이 (0) 2018.06.26