한 번호가 다른 번호의 접두어인 경우를 찾는 문제이다. 본래 해시로 푸는 문제인데 그냥 sort한 다음에 for문으로 돌려서 접두어를 비교해서 풀었다...
먼저 phone_book을 정렬한 후 for문을 돌면서 i와 그 다음 번의 숫자의 접두어를 비교해 줬다. i의 문자 크기만큼 i+1에서 가져와 같다면 false를 다르다면 true를 반환한다.
#include <string>
#include <vector>
#include<algorithm>
#include<iostream>
using namespace std;
bool solution(vector<string> phone_book) {
bool answer = true;
sort(phone_book.begin(), phone_book.end());
for(int i=0; i<phone_book.size()-1; i++){
if(phone_book[i] == phone_book[i+1].substr(0, phone_book[i].size())){
answer = false;
}
}
return answer;
}