Programmers - 전화번호 목록

108번뇌·2020년 9월 17일

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

bool solution(vector<string> phone_book) {
    bool answer = true;
    
    int BK =  phone_book.size();
    sort(phone_book.begin(), phone_book.end());
    
    for(int i=0; i<BK ; i++)
    {
        if( phone_book[i] == phone_book[i+1].substr(0,phone_book[i].size()) )
        {
            answer = false;
            return false;
            break;
        }
    }
     
    return answer;
}

일단 이건 오답임.
왜 하나 틀리나 계속 고민해서 디버깅 찍어봤음.

벡터사이즈 3짜린데,phone_book[2],phone_book[1],phone[0]구성에서
실제로 참조하지 않는 벡터 phone_book[3]을 참조함
런타임 에러났음.
int BK = phone_book.size()-1; 해줘야 없는배열 참조 안함.

그리고,

https://modoocode.com/235에서
substr 함수에 대한 역할이 나옴.
#include
basic_string substr(size_type pos = 0, size_type count = npos) const;

매개변수 1 : 디폴트 0으로 들어가서 처음 위치;
매개변수 2 : 처음으로부터 + @@ 에서 @@;

profile
내일 아침 눈을 떳을 때, '기대되는 오늘 하루를 만들기 위해' 나는 오늘도 생각하고 고민한다.

0개의 댓글