본문 바로가기
2023년 이전/프로그래머스 코딩 테스트

전화번호 목록

by JeongUPark 2020. 8. 9.
반응형
import java.util.*;

class Solution {
    public boolean solution(String[] phone_book) {
        Arrays.sort(phone_book);
        for(int i = 1; i < phone_book.length; i++){
           if(phone_book[i].startsWith(phone_book[0])){
               return false;
           }
        }
        return true;
    }
}

정렬해서 제일 작은 수를 찾고 이를 비교하여 접두어에 그 숫자가 있으면 false, 없으면 true

 

그런데 위의 코드로 할 경우 첫번째 번호가 접두어가될 수 있는게 없는데 두번째 번호를 접두어로 가지는 번호가 있을 경우 성립하지 않습니다.  (프로그래머스 채점이 쫌 이상한것 같습니다. 성립되지 않는데 통과처리가 되었습니다.)

 

그래서 다른 사람의 풀이를 보니

class Solution {
    public boolean solution(String[] phoneBook) {
       for(int i=0; i<phoneBook.length-1; i++) {
            for(int j=i+1; j<phoneBook.length; j++) {
                if(phoneBook[i].startsWith(phoneBook[j])) {return false;}
                if(phoneBook[j].startsWith(phoneBook[i])) {return false;}
            }
        }
        return true;
    }
}

이렇게 간단하게 2중 for문으로 해결!

반응형

'2023년 이전 > 프로그래머스 코딩 테스트' 카테고리의 다른 글

위장  (0) 2020.08.09
완주하지 못한 사람  (0) 2020.08.09