문제
programmers.co.kr/learn/courses/30/lessons/42577
코드
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool solution(vector<string> phone_book) {
bool answer = true;
sort(phone_book.begin(),phone_book.end());
for(int i = 0;i<phone_book.size();i++){
for(int j=i+1;j<phone_book.size();j++){
if(phone_book[j].find(phone_book[i])==0){
answer = false;
return answer;
}
}
}
return answer;
}
우선 sort함수를 통해서 벡터를 길이순으로 정렬을 해주었다. find() 함수로 짧은 문자열을 긴 문자열에서 찾는데, 이때 반환값이 0이면 한 번호가 다른 번호의 접두어인 경우이다.
반응형
'알고리즘 문제 > C++' 카테고리의 다른 글
[백준] 2178번 : 미로 탐색(BFS) - C++ (0) | 2022.02.07 |
---|---|
[프로그래머스] Level2 : 위장 - C++ (0) | 2021.01.23 |
[프로그래머스] Level2 : 더 맵게 - C++ (0) | 2021.01.17 |
[백준] 9934번 : 완전 이진 트리 - C++ (0) | 2021.01.06 |
[백준] 5639번 : 이진 검색 트리 - C++ (0) | 2021.01.04 |