전화번호 목록 프로그래머즈 알고리즘

박우현 (Joshua)·2023년 7월 7일
0

알고리즘 문제

목록 보기
4/4

문제


문제에서 숫자 문자열 phone_book이 주어졌을 때, 한 번호가 다른 번호의 접두어인 경우 false, 그렇지 않으면 true를 return 하면 되는 것이다.

접근방식

  • 처음에는 이중 반복문을 사용하여 번호 하나 씩 확인하면서 접두어 여부를 판단하려 했으나 너무 시간이 오래 걸렸고, 이 문제는 효율성 문제도 있어서 다른 방법을 모색하였다.
    두번째로는 HashMap, 반복문 및 stream()을 사용한 방법을 해보았지만, 효율성 검사 중 2개에서 실패하여 다른 방법을 모색했다.

  • 그래서 문자열을 정리하고 싶어서 Arrays.sort() 를 하였다. 이때 발견한 것이 119 다음 문자열이 119552... 이었던 것이다! 그 이유를 살펴보니, 번호 값이 Integer 가 아닌 String 값으로 들어가 있어서 문자열 순서대로 정렬하면 119 다음 119552... 숫자가 되는 것이다!

  • 이를 통하여서 현재 문자가 다음 문자에 포함이 되어있는지 확인하는 contains를 사용했었으나, 검사 1개 에서 실패가 되어서, 접두어 인지 확인하는 startsWith()로 바꿔서 통과하였다.

profile
매일 매일 성장하자

0개의 댓글