๐Ÿ“ ์ ์–ด์„œ ๋จธ๋ฆฟ์†์œผ๋กœ

[ํ•˜์ฝ”ํ…Œ] Day1. ์‹œ์ž‘์ด ๋ฐ˜ (ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค "์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก" ํ’€์ด) ๋ณธ๋ฌธ

Programming/Algorithm

[ํ•˜์ฝ”ํ…Œ] Day1. ์‹œ์ž‘์ด ๋ฐ˜ (ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค "์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก" ํ’€์ด)

Space_Jin 2025. 9. 8. 22:07
728x90
๋ฐ˜์‘ํ˜•

๋งํฌ๋“œ ์ธ์—์„œ ์œ ์—ฐํžˆ ๋ณธ ํ•˜์ฝ”ํ…Œ ํ”„๋กœ์ ํŠธ์— ๋ฌด์ง€์„ฑ์œผ๋กœ ์‹ ์ฒญ์„ ํ•ด๋ดค๋‹ค.

 

ํ•˜์ฝ”ํ…Œ ํ”„๋กœ์ ํŠธ๋ž€ ํ•˜๋ฃจ ๋งค์ผ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฃจํ‹ด์„ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ ์ด๋ฉ”์ผ๋กœ ๋ฌธ์ œ๋ฅผ ๋ณด๋‚ด์ฃผ๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

๋งค์ผ ์ฐธ์—ฌ๋กœ ์‹ ์ฒญ์„ ํ–ˆ๋Š”๋ฐ ์–ผ๋งˆ๋‚˜ ๊พธ์ค€ํžˆํ•  ์ˆ˜ ์žˆ์„์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ํ•ด๋ณด๋Š”๋ฐ๊นŒ์ง€๋Š” ํ•ด๋ณด๋Š”๊ฑธ๋กœ...

 

์ฒซ ๋ฒˆ์งธ ๋ฌธ์ œ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค "์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก"์„ ๋ฐ›์•˜๋‹ค.

 


๋ฌธ์ œ ์„ค๋ช…

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

  • ๊ตฌ์กฐ๋Œ€ : 119
  • ๋ฐ•์ค€์˜ : 97 674 223
  • ์ง€์˜์„ : 11 9552 4421

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

์ œํ•œ ์‚ฌํ•ญ
  • phone_book์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 1,000,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
    • ๊ฐ ์ „ํ™”๋ฒˆํ˜ธ์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 20 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
    • ๊ฐ™์€ ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ์ค‘๋ณตํ•ด์„œ ๋“ค์–ด์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ž…์ถœ๋ ฅ ์˜ˆ์ œphone_bookreturn
["119", "97674223", "1195524421"] false
["123","456","789"] true
["12","123","1235","567","88"] false
์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1
์•ž์—์„œ ์„ค๋ช…ํ•œ ์˜ˆ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2
ํ•œ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ค๋ฅธ ๋ฒˆํ˜ธ์˜ ์ ‘๋‘์‚ฌ์ธ ๊ฒฝ์šฐ๊ฐ€ ์—†์œผ๋ฏ€๋กœ, ๋‹ต์€ true์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #3
์ฒซ ๋ฒˆ์งธ ์ „ํ™”๋ฒˆํ˜ธ, “12”๊ฐ€ ๋‘ ๋ฒˆ์งธ ์ „ํ™”๋ฒˆํ˜ธ “123”์˜ ์ ‘๋‘์‚ฌ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ต์€ false์ž…๋‹ˆ๋‹ค.


 

๋ฌธ์ œ ํ’€์ด

import java.util.*;

class Solution {
    public boolean solution(String[] phone_book) {
        boolean answer = true;
        
        // ๋ชจ๋‘ set์— ์‚ฝ์ž…
        Set<String> set = new HashSet<>(Arrays.asList(phone_book));
        
        // ์ ‘๋‘์–ด ํ™•์ธ
        for(String num : phone_book) {
            answer = isCorrect(set, num);
            if(answer == false) break;
        }
        
        return answer;
    }
    
    public boolean isCorrect(Set<String> set, String num) {
        int len = num.length();
        
        // ์ž๊ธฐ ์ž์‹ ์€ ํฌํ•จํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค!
        for(int i = 1; i < len; i++) {
            String n = num.substring(0, i);
            
            if(set.contains(n)) return false;
        }
        
        return true;
    }
}

 

์ฃผ์˜์‚ฌํ•ญ

1. ์ฒ˜์Œ Set์— ๋ชจ๋‘ ์‚ฝ์ž…ํ•œ๋‹ค.

์ฒ˜์Œ ํ’€์ด๋ฅผ ํ•  ๋•Œ, Set์— ๋ชจ๋‘ ์‚ฝ์ž…์„ ํ•˜์ง€ ์•Š๊ณ  ์ ‘๋‘์–ด๋ฅผ ๋น„๊ตํ•˜์˜€๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ํ’€๊ฒŒ๋˜๋ฉด ๋’ค์— ๋“ค์–ด์˜ค๋Š” ๊ฐ’์ด ์•ž์˜ ๊ฐ’์  ์ ‘๋‘์–ด์ธ์ง€๋งŒ ํ™•์ธํ•˜๋‹ค. ์ฆ‰, ์•ž์— ๋จผ์ € ๋“ค์–ด์žˆ๋Š” ๊ฐ’์ด ํ˜„์žฌ ๊ฐ’์˜ ์ ‘๋‘์–ด์ธ์ง€๋Š” ๋น„๊ตํ•  ์ˆ˜ ์—†๋‹ค.

 

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

728x90
๋ฐ˜์‘ํ˜•