프로그래머스 전화번호 목록

문제

1

문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/42577

풀이

string 배열을 정렬하면 접두어가 될경우 바로뒤에 정렬된다. 그러므로 for문을 이용해 substr으로 뒤에 배열에서 앞에 배열크기만큼 비교해서 같을경우 접두어가 되는걸로 판별해 false를 return해주도록 했다.

#include <vector>
#include <string>
#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] == phone_book[i + 1].substr(0, phone_book[i].size()))
			return false;
	}
	return answer;
}

댓글남기기