쉬운 문제였다.
phone_number의 len 을 hash function으로 보고 풀었다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<vector<string>> hash_table(21);
bool IS_HASH_TABLE(string str)
{
for (int i = 1; i < str.size(); i++)
for (int j = 0; j < hash_table[i].size(); j++)
for (int k = 0; k < hash_table[i][j].size(); k++)
{
if (str[k] != hash_table[i][j][k])
break;
else
if (k == hash_table[i][j].size() - 1)
return true;
}
return false;
}
bool solution(vector<string> phone_book) {
sort(phone_book.begin(), phone_book.end());
hash_table[phone_book[0].size()].push_back(phone_book[0]);
for (int i = 1; i < phone_book.size(); i++)
{
if (IS_HASH_TABLE(phone_book[i]))
return false;
else
hash_table[phone_book[i].size()].push_back(phone_book[i]);
}
return true;
}'Coding_Test 연습 > Programmers' 카테고리의 다른 글
| [프로그래머스] (C++) LV2 가장 큰 수 (0) | 2022.05.22 |
|---|---|
| [프로그래머스] (C++) LV2 프린터 (0) | 2022.05.22 |
| [프로그래머스] (C++) LV2 빛의 경로 사이클 (0) | 2022.05.19 |
| [프로그래머스] (C++) LV2 행렬 테두리 회전하기 (0) | 2022.05.19 |
| [프로그래머스] (C++) LV2 짝지어 제거하기 (0) | 2022.05.18 |