프로그래머스에서 전화번호 목록 문제를 해결했다.
이전 문제 완주하지 못한 선수 문제와 유사해서 비슷한 방식으로 해결할 수 있었다.
정렬한 후 뒤의 string이 앞 string 보다 짧을 경우 substr을 이용하여 접두어를 찾았다.
#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()-1; i++) {
if (phone_book[i].length() < phone_book[i + 1].length()) {
if (phone_book[i] == phone_book[i + 1].substr(0, phone_book[i].length())) {
answer = false;
break;
}
}
}
return answer;
}
'프로그래밍 > 코딩테스트 문제' 카테고리의 다른 글
[프로그래머스] 다리를 지나는 트럭 (0) | 2019.10.28 |
---|---|
[프로그래머스] 위장문제 (0) | 2019.10.28 |
[프로그래머스] 타켓넘버 (0) | 2019.10.13 |
[프로그래머스] 베스트 앨범 (0) | 2019.10.13 |
[프로그래머스] 완료하지 못한 선수 (0) | 2019.09.14 |