[프로그래머스/Java] Lv.2 전화번호 목록

이은정·2025년 1월 31일

프로그래머스/Java

목록 보기
73/74

문제


로직

  1. 오름차순으로 정렬한다.
    접두어가 존재한다면 오름차순으로 정렬 시에, 두 수는 무조건 인접해서 존재할 것이다.
  2. 두 수를 하나씩 대입해본다.
    두 수를 가져와서 더 작은 수의 길이만큼 첫 번째 숫자부터 하나씩 대입해본다. 만약 모든 수가 같다면 false를 반환한다.
  3. 2번 과정을 모든 수에 대해서 진행하고 false가 하나도 나오지 않는다면 ture를 반환한다.

코드

import java.util.*;

class Solution {
    public boolean solution(String[] phone_book) {
        // 오름차순으로 정렬
        Arrays.sort(phone_book);
        
        // 두 수를 순서대로 대입
        for (int i = 0; i < phone_book.length - 1; i ++) {
            if (isPrefix(phone_book[i], phone_book[i+1])) {
                return false;
            }
        }
        
        return true;
    }
    
    // 한 번호가 다른 번호의 접두어인지 확인하는 메서드
    private boolean isPrefix (String prefix, String word) {
        for (int i = 0; i < prefix.length(); i ++) {
            if (prefix.charAt(i) != word.charAt(i)) {
                return false;
            }
        }
        
        return true;
    }
}

결과

profile
돈 많은 백수가 꿈인 백엔드 개발자 지망생

0개의 댓글