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

dia·2023년 9월 29일
0

풀이방식

  1. 배열에 담긴 전화번호부를 HashSet에 옮겨담기
  2. 배열의 전화번호부에서 전화번호를 한 개씩 선택하기
  3. 선택한 전화번호의 앞부분을 자름(substring 활용)
  4. 잘라낸 부분이 다른 전화번호와 같다면 answer = false
  5. 자른 부분을 늘려가면서 검사

포인트

substring = subSequence

(String)str.substring(indexA, indexB)
(String)str.subSequence(indexA, indexB)
str 문자열을 indexA부터 indexB 앞까지 잘라서 String으로 반환

사용 이유:
선택한 번호의 맨 앞에서부터 잘라낸 것이 다른 번호와 똑같다면, 다른 번호는 선택한 번호의 접두사가 됨

구현

import java.util.HashSet;

public class NUM42577 {
    public static void main(String[] args) {
        String[] phone_book = {"345678","12","123","1235","567","88"};
        System.out.println(solution(phone_book));
    }
    public static boolean solution(String[] phone_book) {
        boolean answer = true;

        HashSet<String> phones = new HashSet();
        for(String num : phone_book) phones.add(num);

        for(String num : phone_book) {
            for(int i = 0; i < num.length(); i++)
                if(phones.contains(num.substring(0, i))) answer = false;
        }

        return answer;
    }
}

*다른 분들의 코드를 참고하여 작성했습니다

profile
CS 메모장

0개의 댓글