my study.

Coding Test/Programmers

[프로그래머스] 전화번호 목록, java

fftl 2025. 1. 27. 23:02

- 문제

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

- 풀이

import java.util.Arrays;

class Solution {
    public boolean solution(String[] phone_book) {
        //전화번호부를 정렬합니다.
        Arrays.sort(phone_book);
        
        //이렇게 할 경우 아래와 같이 숫자의 오름차순, 길이의 오름차순으로 정렬 되는 것을 확인할 수 있다.
        //따라서 인접한 부분의 숫자끼리의 접두사 체크만을 진행해도 답의 여부를 확인할 수 있습니다.
        //테스트 1>    [119, 1195524421, 97674223]
        //테스트 3>    [12, 123, 1235, 567, 88]
        
        // System.out.println(Arrays.toString(phone_book));
        
        //for를 통해 i+1의 번호가 i로 시작하지 않는지를 판단합니다.
        for (int i = 0; i < phone_book.length - 1; i++)
            if (phone_book[i + 1].startsWith(phone_book[i]))
                return false;
        
        //for를 거쳐 왔을 경우 접두어인 경우는 없음을 알 수 있습니다.
        return true;
    }
}