๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“š๊ณต๋ถ€/์ฝ”๋”ฉํ…Œ์ŠคํŠธ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก, ํŒŒ์ด์ฌ & C++

by Janger 2021. 11. 21.
728x90
๋ฐ˜์‘ํ˜•

https://programmers.co.kr/learn/courses/30/lessons/42577?language=cpp 

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก

์ „ํ™”๋ฒˆํ˜ธ๋ถ€์— ์ ํžŒ ์ „ํ™”๋ฒˆํ˜ธ ์ค‘, ํ•œ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ค๋ฅธ ๋ฒˆํ˜ธ์˜ ์ ‘๋‘์–ด์ธ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๊ฒฝ์šฐ, ๊ตฌ์กฐ๋Œ€ ์ „ํ™”๋ฒˆํ˜ธ๋Š” ์˜์„์ด์˜ ์ „ํ™”๋ฒˆํ˜ธ์˜ ์ ‘๋‘์‚ฌ์ž…๋‹ˆ๋‹ค. ๊ตฌ์กฐ

programmers.co.kr

 

ํ•ด์‹œ์— ๊ด€ํ•œ ๋ฌธ์ œ์ด๋‹ค. 

 

์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก ๋ฆฌ์ŠคํŠธ์ธ (phone_book)์ด ๋‘ ๋‹จ์–ด ์ด์ƒ์˜ ์ ‘๋‘์‚ฌ๊ฐ€ ๋น„์Šทํ•œ ๊ฒฝ์šฐ๊ฒŒ false๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ž„

 

 

[ํŒŒ์ด์ฌ 3]

def solution(phone_book):
    answer = True
    
    phone_book.sort()
    
    for i in range( len(phone_book)-1 ):
        
        if phone_book[i+1][:len(phone_book[i])] == phone_book[i]:
            return False
    
    
    return answer

์šฐ์„ ์€ phone_book์„ ์ •๋ ฌ์„ ์‹œ์ผœ ๋น„์Šทํ•œ ๋‹จ์–ด๋ผ๋ฆฌ ์„œ๋กœ ๊ทผ์ ‘ํ•˜๊ฒŒ ์ •๋ ฌ์„ ์‹œ์ผฐ๋‹ค. 

๊ทธ๋‹ค์Œ for ๋ฌธ์—์„œ phone_book[i + 1]์˜ ๋ฌธ์ž ํฌ๊ธฐ๋ฅผ phone_book[i]์™€ ๋™์ผํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ๋‘ ๊ฐ’์ด ๋™์ผ ํ•œ์ง€๋ฅผ ๋น„๊ตํ•˜๋ฉฐ, ๋งŒ์•ฝ ์ผ์น˜ํ•˜๋‹ค๋ฉด False๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋œ๋‹ค. 

 

 

[C++]

#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+1].substr(0, phone_book[i].size()) == phone_book[i] )
            return false;
        
    }
    
    return answer;
}

C++์—์„œ๋„ ๋™์ผํ•˜๋‹ค. 

์šฐ์„ ์€ ์ •๋ ฌ์„ ์‹œํ‚จ ๋‹ค์Œ์— ๋‘ ๊ฐ’์„ ๋น„๊ตํ•ด ์ ‘๋‘์‚ฌ๊ฐ€ ์ผ์น˜ํ•œ ์ง€๋ฅผ ๋น„๊ต.

 

728x90
๋ฐ˜์‘ํ˜•