해시문제이다.
단순히 c++ sort가 어떻게 되는지 알면 될거같다. string이기 때문에, 문자 순서대로 되고, 자신보다 앞에 있는 것이 더 짧기 때문에, substring이 되는지 여부를 찾으면 된다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool solution(vector<string> phone_book) {
sort(phone_book.begin(), phone_book.end());
int phone_book_size = phone_book.size();
for(int i = 0 ; i < phone_book_size-1 ; i++){
if(phone_book[i] == phone_book[i+1].substr(0,phone_book[i].length())) return false;
}
return true;
}