๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/2๋‹จ๊ณ„

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv2] : ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก

by Jaeguk 2022. 6. 14.
๋ฌธ์ œ ๋งํฌ

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

 

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

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

programmers.co.kr

์ „ํ™”๋ฒˆํ˜ธ๋ถ€์˜ ๋ฒˆํ˜ธ๋“ค ์ค‘ ํ•œ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ค๋ฅธ ๋ฒˆํ˜ธ์˜ ์ ‘๋‘์–ด์ธ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š” ์ง€ ํ™•์ธํ•˜๋Š” ๋ฌธ์ œ.

ํ’€์ด

์ฒ˜์Œ์—๋Š” ๋ธŒ๋ฃจํŠธํฌ์Šค๋กœ 2์ค‘ ํฌ๋ฌธ์„ ์จ์„œ ๋ชจ๋“  ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ๋Œ€์กฐํ•ด์„œ ํ™•์ธํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ํ–ˆ๋”๋‹ˆ ์ •ํ™•๋„ ํ…Œ์ŠคํŠธ์—์„œ๋Š” ๋‹ค ๋งž์•˜์ง€๋งŒ ํšจ์œจ์„ฑ ํ…Œ์ŠคํŠธ์—์„œ ์‹คํŒจํ–ˆ๋‹ค.

์•„๋ฌด๋ž˜๋„ ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ๋น„๊ตํ•˜๋ ค๊ณ  ํ•˜๋‹ค๋ณด๋‹ˆ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋‹ค.

์ •๋ ฌ์„ ํ•ด์„œ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐ์€ ํ–ˆ์ง€๋งŒ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ์ง€ ์ž˜ ๋– ์˜ค๋ฅด์ง€๊ฐ€ ์•Š์•˜๋‹ค.

๋‚˜๋Š” ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์„ ์ •๋ ฌํ•˜๊ฒŒ ๋˜๋ฉด ์ˆซ์ž๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ๋  ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ๋ฌธ์ž์—ด์ด๋‹ค ๋ณด๋‹ˆ ์‚ฌ์ „์ˆœ์œผ๋กœ ์ •๋ ฌ์ด ๋œ๋‹ค.

์ด๋•Œ i๋ฒˆ์งธ ๋ฒˆํ˜ธ์™€ ์‚ฌ์ „์ˆœ์œผ๋กœ ๊ฐ€์žฅ ์œ ์‚ฌํ•œ ๋ฒˆํ˜ธ๋Š” i + 1๋ฒˆ์งธ์— ์žˆ๋Š” ๋ฒˆํ˜ธ์ด๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— for๋ฌธ์„ 1๋ฒˆ๋งŒ ๋Œ๋ฉด์„œ i๋ฒˆ์งธ ์ˆซ์ž์™€ i + 1 ๋ฒˆ์งธ ์ˆซ์ž๋งŒ ์ ‘๋‘์‚ฌ๊ฐ€ ๊ฐ™์€์ง€ ํ™•์ธํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

๋น„๊ตํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‚˜๋Š” substr์„ ์ด์šฉํ•ด์„œ ๋น„๊ตํ•˜๋Š” ๋‘ ๋ฌธ์ž์—ด์ค‘ ๊ธธ์ด๊ฐ€ ์งง์€ ๋ฌธ์ž์—ด์„ ๊ธฐ์ค€์œผ๋กœ ๋‘ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ๊ฐ™๊ฒŒ ๋งŒ๋“  ํ›„ ๋น„๊ตํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ผ๋Š”๋ฐ, find ํ•จ์ˆ˜๋ฅผ ์ผ์–ด๋„ ๋  ๊ฒƒ๊ฐ™๋‹ค.

 

 
#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++){
        string Criterion = phone_book[i];
        string Compare = phone_book[i + 1];
        int Min_length = min(Criterion.length(), Compare.length());
        if(Criterion.substr(0,Min_length) == Compare.substr(0,Min_length))
            return false;
    }
    return answer;
}
cs

 

์ •๋ ฌ ํ›„ ๋น„๊ตํ•˜๋Š”๊ฒŒ ์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ

728x90