나의 개인적으로 깔끔하지 않다고 생각하기 때문에 다른분의 코드로 적겠다.
#include <string>
#include <vector>
#include<unordered_map>
using namespace std;
bool solution(vector<string> phone_book){
unordered_map<string, int> hash_map;
for(int i=0; i<phone_book.size(); i++){
hash_map[phone_book[i]] = 1;
}
for(int i=0; i<phone_book.size(); i++){
string phone_number = "";
for(int j=0; j<phone_book[i].size(); j++){
phone_number += phone_book[i][j];
// 각 부분마다 확인하여 접두사인지 아닌지를 체크한다.
if(hash_map[phone_number] && phone_number != phone_book[i]) return false;
}
}
return true;
}
unorderd_map 이라는 새로운 데이터구조에대하여 배웠다. 내 블로그에 따로 정리해 두었으니 이를 잊지말고 활용해야겠다.