#include <string>
#include <vector>
using namespace std;
bool solution(vector<string> phone_book) {
bool answer = true;
// 해시?
for (int i = 0; i < phone_book.size() - 1; ++i)
{
for (int j = i+1; j < phone_book.size(); ++j)
{
if (phone_book[i].length() <= phone_book[j].length() &&
phone_book[i]
== phone_book[j].substr(0, phone_book[i].length()))
return false;
else if (phone_book[i].length() > phone_book[j].length() &&
phone_book[i].substr(0, phone_book[j].length())
== phone_book[j])
return false;
}
}
return answer;
}
해시라는 태그에 있어서 해시로 어떻게 풀지 생각하다가 일단 생각나는대로 썼다.
처음에는 그냥 if문만 쓰고, length && 를 넣지 않으니까 7,8번에서 실패가 떴다.
그러다가 찾아보니까 꼭 앞의 단어가 뒤와 같지 않다고 해서 무릎을 탁침..
["119", "1192839"]의 경우만 탐색하고 ["119827", "119"]를 안찾고 있었던 것
그래서 추가하니까 통과했다.
프로그래머스의 좋은점이, 다 풀면 다른분의 풀이가 해금된다는건데
역시 카테고리가 해쉬인지라 보니까 신기한 풀이가..