공부/알고리즘, 자료구조

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

오잎 클로버 2022. 2. 9. 08:30
728x90

 해당 문제의 링크는 여기입니다. 

 

위 방식은 HashSet 방식을 사용하는 방식이 있지만

배열로만 해결하였습니다.

public boolean solution(String[] phoneBook) {
    Arrays.sort(phoneBook);
    for (int i = 0; i < phoneBook.length - 1; i++) {
        if (phoneBook[i + 1].startsWith(phoneBook[i])) {
            return false;
        }
    }
    
    return true;
}
  1. 전화부를 정렬합니다.
  2. 전화부 길이 - 1 까지 for문을 돌립니다.
  3. 전화부[i + 1]의 시작부분이 현재 전화부 번호이라면 false를 반환합니다.
  4. 전부 다 찾았는 데도 false가 반환되지않았다면 중복이 없으므로 true를 반환합니다.

위는 String이므로 Integer처럼이 아닌

앞숫자 순으로 정렬을 합니다.

(아스키코드 순으로 정렬하기 때문)

 

이상입니다.