✨컴공주✨ [1052682] · MS 2021 · 쪽지

2025-02-08 00:37:44
조회수 119

컴공 일기272

게시글 주소: https://mclass.orbi.kr/00071852963

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


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


해시, 맵을 이용한 풀이입니다. 접두어 문제인데… 복잡한 로직은 아니죠.

Python으로 풀면 딸깍이려나… 여튼 C++도 string을 지원하는 걸요! 하하



#include <string>

#include <vector>

#include <unordered_map>


using namespace std;


unordered_map<string, bool> Mymap;


bool is_prefix(const string& phone_number)

{

    string prefix = "";

    for(char number : phone_number)

    {

        prefix += number;

        

        if(Mymap.find(prefix) != Mymap.end() && 

           phone_number != prefix)

        {

            return true;

        }

    }

    

    return false;

}


bool solution(vector<string> phone_book) {

    

    

    //initialization

    for(const string& phone_number : phone_book)

    {

        Mymap[phone_number] = true;

    }

    

    for(const string& phone_number : phone_book)

    {

        if(is_prefix(phone_number))

        {

            return false;

        }

    }

    

    return true;

}

0 XDK (+0)

  1. 유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.