전화번호 목록

NJW·2023년 2월 22일
0

코테

목록 보기
135/170

문제 설명

한 문장이 다른 문장의 접두어인지를 구하는 문제였다. 간단하게 풀 수 있을 줄 알았지만, 자꾸 효율성을 통과하지 못했던 문제. 아마 배열 정렬을 쓰고 2중 반복문을 써서 그렇지 않을까 싶다.

문제 풀이

다른 사람의 풀이를 보니 startsWith()라는 함수를 사용해서 풀었더라.

해당 함수는 입력되는 문자열로 시작하는지 확인하고 true 혹은 false를 반환하는 함수이다. endsWict() 또한 비슷한데, 이건 끝 부분을 확인하는 함수다.

일단 정렬을 한 뒤(문자열 숫자 또한 정렬이 되는지 첨 알았다...) startsWith로 앞의 문자가 뒤의 문자의 접두어인지 확인하면 된다.

물론 MAP으로 푸는 방법도 있다.

일단 MAP에다가 전부 넣어준 다음에 하나씩 비교하는 방법이다.

풀이

import java.util.*;

class Solution {
    public boolean solution(String[] phone_book) {
        boolean answer = true;
        Arrays.sort(phone_book);
        
        for(int i=0; i<phone_book.length-1; i++){
            if(phone_book[i+1].startsWith(phone_book[i])){
                return false;
                
            }
        }
        
        return answer;
    }
}

링크

https://school.programmers.co.kr/learn/courses/30/lessons/42577

profile
https://jiwonna52.tistory.com/

0개의 댓글