๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

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

 

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

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

programmers.co.kr


1. ๋ฌธ์ œ

์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด์ด ์ฃผ์–ด์ง€๊ณ , ๊ฐ ๋ฐฐ์—ด์˜ ์›์†Œ๊ฐ€ ๋‹ค๋ฅธ ์›์†Œ์˜ ์ ‘๋‘์‚ฌ๋ฉด false, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

2. ํ’€์ด

๋ฐฉ๋ฒ•์€ 2๊ฐ€์ง€์ด๋‹ค.

1. ์ด์ค‘for๋ฌธ

=> 100๋งŒx100๋งŒ = 1์–ต

2. ํ•ด์‹œ๋งต 

=> 100๋งŒ + 100๋งŒx20 = 2100๋งŒ

ํ•ด์‹œ๋งต์ด ํ›จ์”ฌ ํšจ์œจ์ ์ด๋‹ค.

 

๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1. ํ•ด์‹œ๋งต์— String๋ฐฐ์—ด ์›์†Œ๋ฅผ ์ „๋ถ€ ๋„ฃ๋Š”๋‹ค.

2. String๋ฐฐ์—ด์˜ ์›์†Œ๋ฅผ ๊ฐ๊ฐ ๋ณด๋ฉด์„œ ์ตœ๋Œ€ ๊ธธ์ด๋งŒํผ substring์œผ๋กœ ์ž˜๋ผ์„œ map์— key๋กœ ์กด์žฌํ•˜๋Š”์ง€ containsKey๋ฅผ ํ†ตํ•ด ์ฒดํฌํ•œ๋‹ค.

=> containsKey๊ฐ€ true๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

3. ์ฝ”๋“œ

import java.util.*;
import java.io.*;

class Solution {
    public boolean solution(String[] phone_book) {
        
        Map<String, String> map = new HashMap<> ();
        for (String str : phone_book) {
           map.put(str, "");
        }
        
        for (String str : phone_book) {
            for (int i=0; i<str.length(); i++) {
                if (map.containsKey(str.substring(0,i))) {
                    return false;
                }
            }
        }
        return true;
    }
}

4. ์‚ฌ๋‹ด

๋งต์„ ์ข€ ๋” ์ž์œ ์ž์žฌ๋กœ ์“ฐ๊ณ ์‹ถ๋‹ค. ์˜ค๋Š˜๋„ ํ™”์ดํƒฑ ~~