티스토리 뷰

PS

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

tose33 2021. 9. 24. 16:31

https://programmers.co.kr/learn/courses/30/lessons/42577

 

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

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

programmers.co.kr

 

문자열 정렬을 이용해 풀었다.

c++에서는 숫자로된 문자열을 정렬하게되면 

길이와는 상관없이 앞자리가 작은 수부터 정렬된다.

 

예를들어 다음을 정렬하면

"119", "97674223", "1195524421", "119551"

 

"119" "119551" "1195524421" "97674223"

이 된다.

 

따라서 정렬 한후 phone_book을 순회하면서 다음 문자열의 접두가 현재 문자열이라면 (find 함수 사용) 

어떤 번호가 다른 번호의 접두라고 할수있다.

처음에 정렬을 이미 해줬기때문에 바로 다음 번호만 비교해주면 된다. 

현재 번호가 바로 다음 번호의 접두가 아니라면 그 이후는 당연히 접두가 될수없다. 

 

 

'PS' 카테고리의 다른 글

프로그래머스. 프린터  (0) 2021.09.25
프로그래머스. 짝지어 제거하기  (0) 2021.09.24
프로그래머스. 기능개발  (0) 2021.09.24
프로그래머스. 튜플  (0) 2021.09.23
프로그래머스. 캐시  (0) 2021.09.23
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
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
글 보관함