코딩 테스트

(백준/Java) 1181번 : 단어 정렬 (그리고 의문)

Kua 2021. 6. 11. 17:46

난이도: Silver 5

프로그래밍 언어: Java

문제명: 단어 정렬

푼일자: 2021년 6월

 

주소: https://www.acmicpc.net/problem/1181

 

문제풀기

처음으로 BufferedReader 를 써보았습니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class question_1181 { // 단어 정렬
    public static void main(String[] args) throws IOException {
        var br = new BufferedReader(new InputStreamReader(System.in));
        var count = Integer.parseInt(br.readLine());

        var strArr = new String[count];
        for (var i = 0; i < count; i++) strArr[i] = br.readLine();

        Arrays.sort(strArr, (a, b) -> {
            if (a.length() == b.length()) return a.compareTo(b);
            else return a.length() - b.length();
        });

        ArrayList<String> result = new ArrayList<>();
        for (var i = 0; i < count; i++) if (!result.contains(strArr[i])) result.add(strArr[i]);

        for (String s : result) System.out.println(s);
        br.close();
    }
}

 

풀고난 후 든 의문이 하나 있습니다.

 

왜 다른 사람들은 문자열 배열에서 -1 한 뒤에 검사를 하는것을 가지고

"중복되지 않은 단어" 라고 표현을 한걸까요?

 

수많은 풀이 중 하나.

 

조건에 그 어떠한 부분에도 중복되는 단어가 "연속 적으로 발생하며, 2회 까지 반복이 된다" 라는 부분은 없는데 말이죠.

728x90