접두사 - 1141 - 중요!

Seongjin Jo·2023년 6월 24일
0

Baekjoon

목록 보기
43/51

문제

접두사 개념

접두사는 어떤 단어의 앞에 붙어 뜻을 첨가하여 하나의 다른 단어를 이루는 말을 이른다. 예: ‘맨주먹·덧버선·풋사과·군소리’ 등에서 ‘맨―’·‘덧―', '풋-', '군-' 따위

풀이

import java.util.*;

// 접두사 - 정렬 - S1
// indexOf는 특정 문자나 문자열이 있는지 없는지 검사하여 인덱스를 리턴하는 함수.
// 없으면 -1 반환
// 접두사는 어떠한 단어로 시작하는 단어면 접두사인거임
public class ex1141 {

    static int n;
    static String[] arr;

    public static void solution(){
        Arrays.sort(arr, new Comparator<String>() {
            @Override // 길이 내림차순
            public int compare(String o1, String o2) {
                return Integer.compare(o2.length(),o1.length());
            }
        });

        ArrayList<String> list = new ArrayList<>();
        for(String s1 : arr){
            if(list.size()==0){
                list.add(s1);
            }

            boolean flag = true;
            for(String s2 : list){
                if(s2.indexOf(s1)==0) {
                    flag = false;
                    break;
                }
            }
            if(flag) list.add(s1);

        }

        System.out.println(list.size());
    }
    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        n = sc.nextInt();
        arr = new String[n];
        for(int i=0; i<n; i++) {
            arr[i] = sc.next();
        }
        solution();
    }
}

중요 내용
1. s2.indexOf(s1) : s1이라는 문자열이 s2에 있는 위치 반환, 없으면 -1 리턴
2. 길이 내림차순 정렬

        Arrays.sort(arr, new Comparator<String>() {
            @Override // 길이 내림차순
            public int compare(String o1, String o2) {
                return Integer.compare(o2.length(),o1.length());
            }
        });

0개의 댓글