문제
https://school.programmers.co.kr/learn/courses/30/lessons/42577
접근방법
map을 이용해 쉽게 풀 수 있었다.
map에 저장할 때, 전화번호마다 접두사를 모두 저장했다.
phone_book에서 불러운 전화번호가 map에 2개 이상 있다면,
그 전화번호는 다른 번호의 접두사인 것이다.
코드
#include <string>
#include <vector>
#include <map>
using namespace std;
bool solution(vector<string> phone_book) {
bool answer = true;
map<string, int> check_prefix;
for (string number : phone_book) {
string prefix = "";
for (char c : number) {
prefix += c;
check_prefix[prefix]++;
}
}
for (auto& number : phone_book) {
if (check_prefix[number] > 1) answer = false;
}
return answer;
}
개선할 점
#include <map> 안 적어서 한 번 오류.
string을 String으로 써서 한 번 오류.
phone_book에서 가져와야 하는데, check_prefix에서 가져와서 한 번 틀림.
'코딩테스트 준비 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] - k번째 수(정렬) c++ (1) | 2024.02.14 |
---|---|
[프로그래머스] - 베스트앨범(해시) c++ (0) | 2024.02.14 |
[프로그래머스] - 의상(해시) c++ (0) | 2024.02.14 |
[프로그래머스] - 포켓몬(해시) c++ (0) | 2024.02.14 |
[프로그래머스] - 완주하지 못한 선수(해시) c++ (0) | 2024.02.14 |