OJ

[BOJ] 5052 전화번호 목록 (JAVA)

P3PP4 2023. 2. 11. 10:00

https://www.acmicpc.net/problem/5052

 

5052번: 전화번호 목록

첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가

www.acmicpc.net

사전 순으로 정렬하고 비교하면 편합니다.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Main {
    
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static StringBuilder sb = new StringBuilder();

    public static void main(String[] args) throws Exception {

        int T = Integer.parseInt(br.readLine());

t:      for (int tc = 0; tc < T; tc++) {

            int N = Integer.parseInt(br.readLine());
            List<String> input = new ArrayList<>();
            for (int i = 0; i < N; i++) {
                input.add(br.readLine());
            }
            Collections.sort(input);

            for (int i = 1; i < N; i++) {
                if (input.get(i - 1).length() < input.get(i).length()) {
                    if (input.get(i - 1).equals(input.get(i).substring(0, input.get(i - 1).length()))) {
                        sb.append("NO\n");
                        continue t;
                    }
                }
            }

            sb.append("YES\n");

        }

        System.out.print(sb.toString());

    }

}

 

댓글수0