프로그래머스 전화번호 목록 C++
2023. 10. 1. 18:32ㆍ알고리즘
unordered map을 사용해서 해결했다.
모든 전화번호에 대해서 문자열 그대로 map 에 등록해둔다.
그리고 각각의 전화번호에 대해서 부분 문자열을 계산한 후에 이 부분문자열과 map에 등록된 문자열 중에 일치하는 것이 있는지 확인하고 만약 일치하는 것이 있다면 접두사가 겹치는 값이 있는 것이므로 false를 리턴하고 아니라면 true를 리턴하도록 코드를 작성했다.
#include <string>
#include <vector>
#include <unordered_map>
#include <iostream>
using namespace std;
unordered_map<string, int> m;
bool solution(vector<string> phone_book) {
bool answer = true;
for (int i=0;i<phone_book.size();i++){
m[phone_book[i]]=1;
}
for (int i=0;i<phone_book.size();i++){
string ss;
for (int j=0;j<phone_book[i].size()-1;j++){
ss+=phone_book[i][j];
if (m[ss]==1){
return false;
}
}
}
return answer;
}
'알고리즘' 카테고리의 다른 글
코드트리 미로 타워 디펜스 C++ (2) | 2023.10.12 |
---|---|
프로그래머스 의상 C++ (0) | 2023.10.01 |
프로그래머스 단어변환 C++ (2) | 2023.09.30 |
프로그래머스 게임 맵 최단거리 C++ (0) | 2023.09.30 |
프로그래머스 네트워크 c++ (0) | 2023.09.30 |