๐Ÿ”ฅ[99ํด๋Ÿฝ ์ฝ”ํ…Œ ์Šคํ„ฐ๋””] 5์ผ์ฐจ TIL - ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก

HOONSSACยท2024๋…„ 7์›” 26์ผ
1

99Club Coding Test Study

๋ชฉ๋ก ๋ณด๊ธฐ
5/41
post-thumbnail

โณ๋ฌธ์ œ

๋ฌธ์ œ ์„ค๋ช…

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

  • ๊ตฌ์กฐ๋Œ€ : 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;
        
        Arrays.sort(phone_book);
        
        for (int i = 0; i < phone_book.length; i++) {
            
            for (int j = i + 1; j < phone_book.length; j++) {
                if (phone_book[j].startsWith(phone_book[i])) {
                    answer = false;
                }
                else {
                    continue;
                }
            }
        }
        return answer;
    }
}

๋‚˜๋Š” ์šฐ์„  ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์„ ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.
์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋ฉด ์ ‘๋‘์‚ฌ๊ฐ€ ๊ฐ™์€ ๋ฌธ์ž๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ, ๊ทธ ์ ‘๋‘์‚ฌ๊ฐ€ ๋‹ค๋ฅธ ๋ฌธ์ž๋“ค๋ณด๋‹ค ๋ฌด์กฐ๊ฑด ์•ž์— ์ •๋ ฌ๋˜๊ณ , ๋‚˜๋Š” ํ•ด๋‹น ์ ‘๋‘์‚ฌ ๋’ค์— ์žˆ๋Š” ์š”์†Œ๋“ค์ด๋ž‘๋งŒ ๋น„๊ต๋ฅผ ํ•ด์ฃผ๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ทธ๋ž˜์„œ ์ด์ค‘ for๋ฌธ์„ ์‚ฌ์šฉํ•ด i๋ฒˆ์งธ ๋ฌธ์ž์—ด์„ ๊ฐ€์ง€๊ณ  i+1๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋น„๊ตํ•ด ๋‚˜๊ฐ€๋ฉฐ, ๋งŒ์•ฝ ํ˜„์žฌ์˜ ๋ฌธ์ž์—ด์ด i๋ฒˆ์งธ ๋ฌธ์ž์—ด๋กœ ์‹œ์ž‘ํ•œ๋‹ค๋ฉด, answer์— false๊ฐ€ ์ €์žฅ๋˜๋„๋ก ๊ตฌํ˜„ํ–ˆ๋‹ค.

๋ชจ๋“  ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ†ต๊ณผํ•˜์˜€์œผ๋‚˜, ์—ญ์‹œ ์ด์ค‘ for๋ฌธ์„ ์จ์„œ ๊ทธ๋ž˜์„œ ์ธ์ง€ ์Œ‰๋น„ํšจ์œจ์ ์ด๋ผ๋Š” ๊ฒฐ๊ณผ๋ฅผ ํ†ต๋ณด ๋ฐ›์•˜๋‹ค.

๊ทธ๋ ‡๊ฒŒ for๋ฌธ์„ ์–ด๋–ป๊ฒŒ ํ•œ ๋ฒˆ๋งŒ ์“ธ ์ˆ˜ ์žˆ์„ ์ง€ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€, ๊ฐ™์€ ์ ‘๋‘์‚ฌ๋ฅผ ๊ฐ€์ง€๋Š” ๋ฌธ์ž์—ด์€ ํ•ด๋‹น ์ ‘๋‘์‚ฌ ๋ฌธ์ž์—ด ๋ฐ”๋กœ ๋’ค์— ์œ„์น˜ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค.

์ฆ‰, ๋ชจ๋“  ๋ฌธ์ž์—ด์„ ์„œ๋กœ ๋น„๊ตํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ๋’ค ์ธ๋ฑ์Šค์˜ ๋ฌธ์ž์—ด์ด๋ž‘๋งŒ ๋น„๊ตํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค!

๐Ÿ–ฅ๏ธ์ตœ์ข… ์ฝ”๋“œ

import java.util.*;

class Solution {
    public boolean solution(String[] phone_book) {
        boolean answer = true;
        
        Arrays.sort(phone_book);
        
        for (int i = 1; i < phone_book.length; i++) {
            if (phone_book[i].startsWith(phone_book[i - 1])) {
                answer = false;
            }
            else {
                continue;
            }
        }
        return answer;
    }
}

๊ทธ๋ž˜์„œ ์ด๋ ‡๊ฒŒ i๋ฅผ 1๋ถ€ํ„ฐ ๋Œ๋ฆฌ๊ณ ,
i๋ฒˆ์งธ ๋ฌธ์ž์—ด์ด ๋ฐ”๋กœ ์•ž์˜ ๋ฌธ์ž์—ด๋กœ ์‹œ์ž‘ํ•˜๋ฉด,
์ฆ‰, i-1๋ฒˆ์งธ ๋ฌธ์ž์—ด์ด ํ˜„์žฌ ๋ฌธ์ž์—ด์˜ ์ ‘๋‘์‚ฌ๋ผ๋ฉด,
answer๋ณ€์ˆ˜์— false๋ฅผ ์ €์žฅํ•ด์คŒ์œผ๋กœ์จ ์ข€ ๋” ํšจ์œจ์ ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค!


๐Ÿ”—๋ฌธ์ œ ๋งํฌ
๐Ÿ’ปRepository

profile
ํ›ˆ์‹น์˜ ๊ฐœ๋ฐœ์—ฌํ–‰

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

comment-user-thumbnail
2024๋…„ 7์›” 26์ผ

๐Ÿ‘

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ