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

이호영·2022년 4월 9일
0

프로그래머스-Level.2

목록 보기
19/36
import java.util.*;

class Solution {
    public boolean solution(String[] phone_book) {
        boolean answer = true;
        HashSet<String> phone_hash = new HashSet<String>();
        ArrayList<PhoneNumber> phone_numbers = new ArrayList<>();
        
        for(String phone_number : phone_book) {
        	PhoneNumber pn = new PhoneNumber(phone_number);
        	phone_numbers.add(pn);
        }
        Collections.sort(phone_numbers);
        
        for(PhoneNumber pn : phone_numbers) {
        	if(phone_hash.contains(pn.phone_number))
        		return false;
        	
        	for(int i=0; i<pn.phone_number.length(); i++)
        		phone_hash.add(pn.phone_number.substring(0, i));
        }
        return answer;
    }
    
    public class PhoneNumber implements Comparable<PhoneNumber>{  //길이 순으로 정렬
    	String phone_number;
    	
    	public PhoneNumber(String phone_number) {
    		this.phone_number = phone_number;
    	}

		@Override
		public int compareTo(PhoneNumber o) { 
			if(this.phone_number.length() < o.phone_number.length())
				return 1;
			if(this.phone_number.length() > o.phone_number.length())
				return -1;
			return 0;
		}
    	
    }
}

0개의 댓글