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

jyleever·2022년 7월 15일
0

알고리즘

목록 보기
9/26

문제

https://school.programmers.co.kr/learn/courses/30/lessons/42577

풀이

Arrays.sort 를 통해 String 클래스를 정렬할 경우 naturing ordering을 따름
즉 natural ordering은 사전 편찬 상으로 정렬됨!
['12','123','13']을 정렬 돌린다면 ['12', '123', '13'] 로 정렬된다.
따라서 접두어가 되는 단어와 그 단어를 접두어로 포함하고 있는 단어가 붙어서 정렬되므로 i+1와 i번째 단어를 비교하면 된다!

startsWith : 비교대상문자열.startsWith(문자열)

코드

/**
비교대상 문자열.startsWith(체크할 문자열)
**/

import java.util.Arrays;

class Solution {
    public boolean solution(String[] phone_book) {
        boolean answer = true;
        
        Arrays.sort(phone_book); // "1234"가 "123"보다 앞에 오게끔 정렬됨
        
        for(int i=0; i<phone_book.length-1; i++){
            if(phone_book[i+1].startsWith(phone_book[i])){
                answer = false;
                break;
            } // 수가 큰 것을 기준으로 작은 것과 비교
        }
        return answer;
    }
}

0개의 댓글