목록전화번호 목록 (2)
N
문제 전화번호 목록이 주어진다. 이때, 이 목록이 일관성이 있는지 없는지를 구하는 프로그램을 작성하시오. 전화번호 목록이 일관성을 유지하려면, 한 번호가 다른 번호의 접두어인 경우가 없어야 한다. 예를 들어, 전화번호 목록이 아래와 같은 경우를 생각해보자 긴급전화: 911 상근: 97 625 999 선영: 91 12 54 26 이 경우에 선영이에게 전화를 걸 수 있는 방법이 없다. 전화기를 들고 선영이 번호의 처음 세 자리를 누르는 순간 바로 긴급전화가 걸리기 때문이다. 따라서, 이 목록은 일관성이 없는 목록이다. 입력 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록..

카테고리는 해시가 나와있지만, 간단하게 sort()를 활용하여 문제를 풀었다..! 우선 phone_book을 오름차순으로 정렬을 한다. 그리고 for문으로 0 ~ phone_book.size() 만큼 반복하고, 안에서는 i + 1 ~ phon_book.size() 만큼 반복한다. 1번째 for문)str은 현재 전화번호, size는 str의 크기를 나타낸다. 2번째 for문)tmp는 str을 접두어로 가지고 있는지 비교하기 위한 임시 변수로, i + 1부터 끝까지 탐색한다. substr을 이용하여 str의 size만큼 잘라내어 tmp에 저장한다. 그리고 tmp와 str을 비교하여 서로 같으면 바로 retrun false를 해주었다..! 만약 반복문을 끝까지 돌 때까지 return하지 않고 빠져나오면 한 번..