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

dev_jo·2022년 5월 23일
0

알고리즘 풀이

목록 보기
4/25
post-custom-banner

문제

전화번호목록



문제풀이

import java.util.*;

class Solution {
    public boolean solution(String[] phone_book) {
        boolean answer = true;   
        // 문자열 길이가 적은 것 부터 먼저순으로 배열 재 정렬
       Arrays.sort(phone_book, new Comparator<String>(){
            public int compare(String s1, String s2) {
                if (s1.length() == s2.length()) {
                    return s1.compareTo(s2);
                }
                else {
                    return s1.length() - s2.length();
                }
            }
        
        });
        
    // 모든 배열의 문자열 길이가 같은 경우는 flag = false => 접두사가 없는 경우이므로 for문 실행안해야함
    Boolean flag = false;
        
    int max_length = phone_book[0].length();
        
    for (int i = 1; i < phone_book.length; i++) {
        if (max_length < phone_book[i].length()) {
            flag = true;
            break;
        }
    } 
      if (flag) {
        // 비교  
          loop:
          for (int i = 0; i < phone_book.length; i++) {
              for (int j = i + 1; j < phone_book.length; j++) {
                String keyword = phone_book[i] + ".*"; 
                if (phone_book[j].matches(keyword)) {
                    answer = false;
                    break loop;
                }
             } 
          }    
      }  
      
        return answer;
    }
}




profile
To be a better developer!!
post-custom-banner

0개의 댓글