https://programmers.co.kr/learn/courses/30/lessons/42577
코딩테스트 연습 - 전화번호 목록
전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조
programmers.co.kr
이번 문제는 해시 문제였습니다.
하지만.. 저는 해시를 사용하지 않고 풀었습니다. 😅
《문제 풀이》
1. phone_book을 사전 순으로 정렬
2. 현재 전화번호가 다른 전화번호의 접두어라면 answer = false
《C++ 코드》
#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] == phone_book[i+1].substr(0, phone_book[i].size()))
answer = false;
}
return answer;
}

반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] 프린터 (0) | 2022.02.17 |
|---|---|
| [프로그래머스] 괄호 변환 (0) | 2022.02.16 |
| [프로그래머스] 짝지어 제거하기 C++ (0) | 2022.02.14 |
| [프로그래머스] 문자열 압축 (0) | 2022.02.12 |
| [프로그래머스] 기능개발 (0) | 2022.02.11 |