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

HaJingJingยท2021๋…„ 6์›” 11์ผ
0

Algorithm

๋ชฉ๋ก ๋ณด๊ธฐ
63/119

0. ๋ฌธ์ œ

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

๊ตฌ์กฐ๋Œ€ : 119
๋ฐ•์ค€์˜ : 97 674 223
์ง€์˜์„ : 11 9552 4421
์ „ํ™”๋ฒˆํ˜ธ๋ถ€์— ์ ํžŒ ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด phone_book ์ด solution ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์–ด๋–ค ๋ฒˆํ˜ธ๊ฐ€ ๋‹ค๋ฅธ ๋ฒˆํ˜ธ์˜ ์ ‘๋‘์–ด์ธ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์œผ๋ฉด false๋ฅผ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด true๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ
phone_book์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 1,000,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
๊ฐ ์ „ํ™”๋ฒˆํ˜ธ์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 20 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
๊ฐ™์€ ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ์ค‘๋ณตํ•ด์„œ ๋“ค์–ด์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

1. ์•„์ด๋””์–ด

๐Ÿ’ก HashSet ์ด์šฉ
๐Ÿ’ก ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์•ž์—์„œ๋ถ€ํ„ฐ ๊ณ„์†ํ•ด์„œ ๋Š˜๋ ค๊ฐ€๋ฉด์„œ HashSet์•ˆ์— ์ค‘๋ณต๋˜๋Š” ํ‚ค๊ฐ€ ์žˆ๋‚˜ ๊ฒ€์‚ฌํ•จ

2. ํ•ต์‹ฌ ํ’€์ด

1) ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์•ž์—์„œ๋ถ€ํ„ฐ ๊ณ„์†ํ•ด์„œ ๋Š˜๋ ค๊ฐ€๋ฉด์„œ HashSet์•ˆ์— ์ค‘๋ณต๋˜๋Š” ํ‚ค๊ฐ€ ์žˆ๋‚˜ ๊ฒ€์‚ฌํ•จ

for(String target : phone_book){
		for(int i=0; i<target.length(); i++){
		    if(set.contains(target.substring(0,i)))
		        return false;
    }
}

3. ์ฝ”๋“œ

import java.util.HashSet;
class Solution {
    public boolean solution(String[] phone_book) {
        boolean answer = true;
        
        HashSet<String> set = new HashSet<String>();
        
        for(String input: phone_book){
            set.add(input);
        }
        
        for(String target : phone_book){
            for(int i=0; i<target.length(); i++){
                if(set.contains(target.substring(0,i)))
                    return false;
            }
        }
        
        return answer;
    }
}

4. ๊ฒฐ๊ณผ

์„ฑ๊ณตโœจ

profile
๐ŸŒฑ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๐ŸŒฑ

0๊ฐœ์˜ ๋Œ“๊ธ€