[코테/JAVA] 해시 : 전화번호 목록

    728x90
    반응형

    2021.11.29

    74번째 포스팅

     

    입사 267일차.

    코테 문제풀이 8주차 2번 문제

     

     

    0. 문제

      ① 해시 : 전화번호 목록

      ② 설명

    문제설명

    전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다.

    전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다.

    • 구조대 : 119
    • 박준영 : 97 674 223
    • 지영석 : 11 9552 4421
    전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요.
    제한 사항
    • phone_book의 길이는 1 이상 1,000,000 이하입니다.
      • 각 전화번호의 길이는 1 이상 20 이하입니다.
      • 같은 전화번호가 중복해서 들어있지 않습니다.

      ③ 링크

     

    코딩테스트 연습 - 전화번호 목록

    전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조

    programmers.co.kr

     

     

    1. 접근방법

      생각해낸 방법은 2가지

      ① String1.startsWith(String2)를 사용

      ② Hash를 사용

     

     

    2. 풀이

      ① 접근방법 :

      ② 풀이

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    import java.util.*;
     
    class Solution {
        /*
        * 시작시간 : 18:50
        * 종료시간 : 21:07
        */
        public boolean solution(String[] phone_book) {
            boolean answer = preWordChck(phone_book);
            return answer;
        }
        
        public boolean preWordChck(String[] phone_book) {
     
            // 1. 오름차순으로 정렬
            Arrays.sort(phone_book);
     
            boolean overLapChck = true;    
            for (int i = 0; i < phone_book.length - 1; i++) {
     
                // 2. startsWith을 사용하여 접두어인지 확인
                // str1이 str2의 접두어인지 확인
                if (phone_book[i + 1].startsWith(phone_book[i])) {
                    overLapChck = false;
                    return overLapChck;
                }
            }
     
            return overLapChck;
        }
    }
    cs

     

     

    3. 결과

     

     

    4. 주의사항

      ① 없음

    728x90
    반응형

    댓글