티스토리 뷰

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

처음에는 vector<int> 를 따로만들어서

정렬하고 다시 phone_book에 넣고

substr으로 접두사비교를하는식으로했는데

틀렸다고 나와서

 

다른사람풀이를보니

그냥 바로 vector<string>에서 정렬하고 비교하더라

 

 

그리고 이 문제를 풀면서

vector<string> phone_book의

phone_book[0]의 길이, phone_book[1]의 길이를 어떻게 구할지 몰랐었다

phone_book[0].length()를하면 오류가나는데 왜이러는지 잘 모르겠다

iterator로 (*it).length()를 하면 되긴하는데

그러면 이중반복문에서 core dumped가 뜬다

 

방법은

그냥

해당 index에 size를하면된다

phone_book[0].size()

이건 몰랐던건데 알아간다

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함