문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/42577
N이 1,000,000이지만 전화번호 길이가 최대 20이기 때문에 O(N * 20)으로 풀 수 있는 문제였습니다.
알고리즘은 아래와 같습니다.
1. phone_book 벡터 내 전화번호들을 set에 넣어주고, 각 전화번호와 인덱스를 매핑해줄 map을 정의해줍니다.
2. phone_book 벡터 내 전화번호들을 순회하며 각 전화번호의 길이를 1 ~ 전화번호의 최대 길이까지 부분 문자열을 구해 해당 번호가 다른 번호의 접두어인지 확인해줍니다.
3. 2번에서 그런 번호가 있다면 false를 없다면 true를 반환해줍니다.
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
반응형
'알고리즘 > programmers' 카테고리의 다른 글
[Programmers 코딩테스트 고득점 Kit] 베스트앨범 (0) | 2021.09.21 |
---|---|
[Programmers 코딩테스트 고득점 Kit] 위장 (0) | 2021.09.21 |
[Programmers 코딩테스트 고득점 Kit] 완주하지 못한 선수 (0) | 2021.09.18 |
[Programmers 코딩테스트 고득점 Kit] 주식가격 (0) | 2021.09.18 |
[Programmers 코딩테스트 고득점 Kit] 다리를 지나는 트럭 (0) | 2021.09.18 |