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

워니·2024년 5월 30일

문제

문제의 유형이 '해시'여서 해시로 key를 이용해 value를 찾는 건가? 생각했는데 sort한 후 startsWith를 사용해 풀어도 좋겠다고 생각해서 풀어보았다

처음에는 이중 for문을 써서, i는 0부터, j는 length-1부터 역순으로 돌며 확인했는데 효율성 테스트를 통과하지 못해 다른 방법을 찾아야 했다.
그리고, 답은 자바의 "sort"에 있었다.
{"1", "119", "1533", "11"} 정렬시 {"1", "11", "119", "1533"}으로, 그 옆에 붙은 수하고만 비교를 하면 되었다...!
그래서 찾은 정답

import java.util.*;

class Solution {
    public boolean solution(String[] phone_book) {
     
        int len = phone_book.length;
       
        Arrays.sort(phone_book);
        for(int i = 0; i < len-1; i++) {
            if(phone_book[i+1].startsWith(phone_book[i])) {
                return false;
            }           
        }
        return true;
    }
}
profile
매일, 조금씩 나아가는중

0개의 댓글