Programmers

Programmers LV.2 전화번호 목록

Developer Garam.Choi 2020. 12. 16. 22:55

 

 

2중포문을 사용하지 않고도 처리가 가능 할 줄 알고 별에 별 시물레이션을 돌려봤지만, 

 

명확한 답을 찾지 못하여서 진행 

 

처음엔 향상된 for 문을 사용하는걸 즐겨쓰는데, 

 

for(String phone : phone_book) {

  for(String equlsePhone : phone_book) if(!phone.equlse(equlsePhone)

}

 

위와 같이 처리하는게 더 빠른지 궁금했는데, 결국 한번 더 for문을 돈다는게 오래걸린 다는 것을 확인하고, 처리하였다.

 

문제를 명확히보지않고 "접두어"가 아닌 indexOf로 해결하면 되겠지 하고 넘겼다가, 접두어 항목을 다시보고 startsWith로 변경하였다.

 

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++){
            for(int a=i+1; a<phone_book.length; a++) if(phone_book[a].startsWith(phone_book[i])) return false;
        }
     
        return true;
    }
}