๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿงฉ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/๐Ÿต ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด(Java)

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

by carrot0911 2025. 4. 7.

๋ฌธ์ œ ์„ค๋ช…

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

 

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

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

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

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

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

์ œํ•œ ์‚ฌํ•ญ

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

์ž…์ถœ๋ ฅ ์˜ˆ

phone_book return
["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;
        
        // phone_book ๋ฐฐ์—ด ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
         Arrays.sort(phone_book);

        // ๋ฐ˜๋ณต๋ฌธ์„ ํ™œ์šฉํ•˜์—ฌ phone_book ๋ฐฐ์—ด ์ˆœํšŒ
        for (int i = 0; i < phone_book.length - 1; i++) {
            // ๋งŒ์•ฝ ๋‹ค์Œ ๊ฐ’์ด ํ˜„์žฌ ๊ฐ’์œผ๋กœ ์‹œ์ž‘ํ•œ๋‹ค๋ฉด
            if (phone_book[i+1].startsWith(phone_book[i])) {
                // answer์— false ์ €์žฅ
                answer = false;
                // ๋ฐ˜๋ณต๋ฌธ ์ข…๋ฃŒ
                break;
            }
        }
        
        // answer ๋ฐ˜ํ™˜
        return answer;
    }
}

๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ์ƒ๊ฐํ•œ ๋ฐฉํ–ฅ

๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๊ณ  ๋ฐ”๋กœ ๋’ค์˜ ๊ฐ’๊ณผ ๋น„๊ตํ•œ๋‹ค.
์ ‘๋‘์–ด์ธ์ง€ ๋น„๊ต์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ’์ด ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ์œผ๋‹ˆ๊นŒ ์ฐจ๋ก€๋กœ ๋น„๊ตํ•˜๋ฉด์„œ ์•ž๋ถ€๋ถ„์— ํ•ด๋‹น ๋ฌธ์ž์—ด์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด false, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 


startsWtih()

๋Œ€์ƒ ๋ฌธ์ž์—ด์ด ํŠน์ • ๋ฌธ์ž ๋˜๋Š” ๋ฌธ์ž์—ด๋กœ ์‹œ์ž‘ํ•˜๋Š”์ง€ ์ฒดํฌํ•˜๋Š” ํ•จ์ˆ˜
ํ•ด๋‹น ๋ฌธ์ž์—ด๋กœ ์‹œ์ž‘๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ณ  boolean์— ๋งž์ถฐ true/false ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋น„๊ต๋Œ€์ƒ๋ฌธ์ž์—ด.startsWith("์ฒดํฌํ• ๋ฌธ์ž์—ด");

๊ณต๋ฐฑ๋„ ์ทจ๊ธ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ™•์ธํ•˜๊ณ  ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

endsWith()

๋Œ€์ƒ ๋ฌธ์ž์—ด์ด ํŠน์ • ๋ฌธ์ž ๋˜๋Š” ๋ฌธ์ž์—ด๋กœ ๋๋‚˜๋Š”์ง€ ์ฒดํฌํ•˜๋Š” ํ•จ์ˆ˜
ํ•ด๋‹น ๋ฌธ์ž์—ด๋กœ ๋๋‚˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ณ  boolean์— ๋งž์ถฐ true/false ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋น„๊ต๋Œ€์ƒ๋ฌธ์ž์—ด.endsWith("์ฒดํฌํ• ๋ฌธ์ž์—ด");

๊ณต๋ฐฑ๋„ ์ทจ๊ธ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ™•์ธํ•˜๊ณ  ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

References

https://jamesdreaming.tistory.com/86

 

[ ์ž๋ฐ” ์ฝ”๋”ฉ ] Java startsWith(), endsWith()

์•ˆ๋…•ํ•˜์„ธ์š”. ์ œ์ž„์Šค ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…๋„ ์—ญ์‹œ ์ž๋ฐ”์˜ String ๊ด€๋ จ ํ•จ์ˆ˜๋ฅผ ์ •๋ฆฌ ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ๋Œ€์ƒ ๋ฌธ์ž์—ด์ด ํŠน์ • ๋ฌธ์ž ๋˜๋Š” ๋ฌธ์ž์—ด๋กœ ์‹œ์ž‘ ํ•˜๊ฑฐ๋‚˜ ๋๋‚˜๋Š”์ง€์— ๋Œ€ํ•ด ์ฒดํฌ ํ•  ์ˆ˜ ์žˆ๋Š”

jamesdreaming.tistory.com

https://mine-it-record.tistory.com/128

 

[JAVA] ์ž๋ฐ”_startsWith/endsWith (ํŠน์ • ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋๋‚˜๋Š”์ง€ ์ฒดํฌ)

- ํŠน์ • ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋๋‚˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ - startsWith() - boolean startsWith(String prefix) - startsWith() ํ•จ์ˆ˜๋Š” ๋Œ€์ƒ ๋ฌธ์ž์—ด์ด ํŠน์ • ๋ฌธ์ž ๋˜๋Š” ๋ฌธ์ž์—ด๋กœ ์‹œ์ž‘ํ•˜๋Š”์ง€ ์ฒดํฌํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. - ํ•ด๋‹น ๋ฌธ์ž์—ด๋กœ

mine-it-record.tistory.com