최대 1 분 소요

[프로그래머스] 전화번호 목록

문제 링크

#include "header.h"
using namespace std;

bool cmp(string a, string b){
    return a.length() < b.length();
}
bool solution(vector<string> phone_book) {

    sort(phone_book.begin(), phone_book.end(), cmp);

    for(int i=0; i<phone_book.size()-1; i++){
        string target = phone_book[i];
        for(int j=i+1; j<phone_book.size(); j++){
            string cmp = phone_book[j];
            int flag = 1;
            for(int k=0; k<target.length(); k++){
                if(cmp[k] != target[k]){
                    flag = 0;
                    break;
                }
            }
            if(flag) return false;
        }
    }

    return true;
}
  • leetcode에서 비슷한 문제를 풀어봐서 그때랑 똑같이 풀었다.
  • 가장 짧은 순서대로 정렬 한 다음에, 하나씩 다음 전화번호랑 비교한다.
  • 하나라도 같지 않으면 flag = 0 해 주고 바로 break
  • flag가 1이라면 false를 리턴한다. (찾은 경우)

카테고리:

업데이트: