본문 바로가기
알고리즘/c++ 프로그래머스

[프로그래머스 전화번호 목록] c++ (코드, 풀이, 개념)

by 말린밴댕이_공부 2023. 5. 17.
반응형

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/42577

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

 

코드 및 풀이

사실 이 문제는 예전에 알고리즘을 한창 풀때 풀었던 문제입니다.

 

근데 코드를 보니 지금의 저보다 훨씬은 몇수 위라는것을 느끼네요..

substr을 생각도 안했는데 그때의 저는 사용을 했다니 굉장히 놀라웠습니다.. (아마 42서울에서 사용해서 그럴지도..?!)

 

sort를 이용하게 되면 데이터 타입이 string이라 사전순으로 정렬이 됩니다.

사전순으로 정렬을 했기 때문에 인접한 원소의 비교를 통해 진행을 하면 됩니다.

만약 substr을 이용해 그것이 같다면 false가 됩니다 :)

#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;
}
반응형

댓글