ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

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

Yuuuki 2024. 7. 26. 20:08

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

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

 

โœ… ์ •๋‹ตํ’€์ด (๋ฐฐ์—ด)

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

 

์ด์ „์—, JS๋กœ ํ•œ๋ฒˆ ํ’€์–ด๋ณธ ๋ฌธ์ œ๋ผ์„œ ๊ธˆ๋ฐฉ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

โšก๏ธ ์ด ๋ฌธ์ œ์˜ ํฌ์ธํŠธ๋Š” ์ ‘๋‘์‚ฌ๊ฐ€ ํฌํ•จ๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š”๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— sort๋กœ ์ •๋ ฌํ•œ ์ƒํƒœ์—์„œ๋Š” ๋ฐ”๋กœ ๋‹ค์Œ์š”์†Œ๋งŒ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค๋Š” ์ ์ด๋‹ค.

 

์ •๋ ฌ๋œ ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์—, ๊ทธ๊ฒƒ๋„ ์ผ๋ถ€๊ฐ€ ์•„๋‹Œ ํ•œ ๋‹จ์–ด ์ „์ฒด๊ฐ€ ์ ‘๋‘์–ด๊ฐ€ ๋˜์–ด์•ผํ•ด์„œ, ์ž์‹ ์„ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์Œ ๋‹จ์–ด๊ฐ€ ์ ‘๋‘์‚ฌ์˜ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜์ง€ ๋ชปํ•˜๋ฉด ์ดํ›„์˜ ๋‹จ์–ด๋“ค์€ ํ™•์ธํ•ด๋ณผ ํ•„์š”๊ฐ€ ์—†๋‹ค.

 

 

 

 

 

โœ… ์ •๋‹ตํ’€์ด (ํ•ด์‹œ)

for๋ฌธ์„ ์ˆœํšŒํ•˜๋ฉด์„œ ๋‹ค์Œ ์š”์†Œ๋ฅผ ํ™•์ธํ•˜๋Š” ์‹์œผ๋กœ ํ’€์ดํ•˜์˜€๋Š”๋ฐ, ๋ฌธ์ œ์˜ ์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ ํ•ด์‹œ๊ธธ๋ž˜

ํ•œ๋ฒˆ ํ•ด์‹œ๋กœ ๋‹ค์‹œ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด์•˜๋‹ค.

 

def solution(phone_book):
    phone_map = {}

    for number in phone_book:
        phone_map[number]=True

    for number in phone_book:
        for i in range(1,len(number)):
            prefix=number[:i] # ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ํ›„๋ณด ์ ‘๋‘์–ด ์ƒ์„ฑ
            if prefix in phone_map:
                return False

    return True

 

์Œ ๋˜๊ฒŒ ์ •์งํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์ธ๊ฒƒ ๊ฐ™๋‹ค.

 

์ผ๋‹จ, ๋ชจ๋“  ๋‹จ์–ด๋ฅผ map์„ ์ƒ์„ฑํ•ด์„œ ๋„ฃ์–ด์ฃผ๊ณ , ๋ชจ๋“  ๋‹จ์–ด๋“ค์— ๋Œ€ํ•ด ๊ฐ€๋Šฅํ•œ ์ ‘๋‘์–ด๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ ‘๋‘์–ด๊ฐ€ ์ƒ์„ฑํ•ด๋‘” map์— ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•œ๋‹ค.