๐Ÿธminzzi
Minzzi์•ผ
๐Ÿธminzzi
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (131) N
    • ์˜ค๋ฅ˜ํ•ด๊ฒฐ (14)
    • FE (36) N
      • Next.js (17) N
      • React (4)
      • React Native (0)
      • TypeScript (1)
      • JavaScript (14)
    • BE (0)
      • Nest.js (0)
    • ๋ฐ๋ธŒ์ฝ”์Šค (7)
    • ์›น ํ”„๋กœ์ ํŠธ (5)
    • CS (28)
      • Algorithm (5)
      • Python (4)
      • C++ (2)
      • Operating System (4)
      • Computer Networking (3)
      • Data Structure (1)
      • Machine Learning (3)
      • Tip (6)
    • Github (4)
    • Flutter (3)
      • ํ”„๋กœ์ ํŠธ (3)
    • Private (27)
      • ํšŒ๊ณ  (7)
      • ๋ฉด์ ‘ (17)
    • ๊ฐœ๋ฐœ๋„์„œ (6)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ๋ฉด์ ‘
  • next.js
  • reflow
  • ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…
  • ํž™์˜์—ญ
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
  • layout shift
  • ํ˜ธ์ด์ŠคํŒ…
  • ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
  • ์›์‹œํƒ€์ž…
  • react
  • ์˜ค๋ธ”์™„
  • ๋ชจ๋˜๋ฆฌ์•กํŠธ๋”ฅ๋‹ค์ด๋ธŒ
  • ์‹คํ–‰์ปจํ…์ŠคํŠธ
  • ์ด๋ฒคํŠธ๋ฃจํ”„
  • ์ฝœ์Šคํƒ
  • ์ด๋ฏธ์ง€ ์ตœ์ ํ™”
  • ๋ ‰์‹œ์ปฌ
  • ์‹คํ–‰์ปจํƒ์ŠคํŠธ
  • SSR

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
๐Ÿธminzzi

Minzzi์•ผ

CS/Algorithm

[Algorithm-JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”ํ…Œ Lv2 - ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก(some, indexOf, startsWith)

2024. 8. 2. 19:30

โœ”๏ธ ๋ฌธ์ œ๋งํฌ

https://school.programmers.co.kr/learn/courses/30/lessons/42577?language=javascript

 

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

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

programmers.co.kr

โœ”๏ธ ๋ฌธ์ œ์š”์•ฝ

์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ๋‚˜์—ด๋œ ๋ฐฐ์—ด phone_book์ด ์žˆ๊ณ , ํŠน์ • ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ๋‹ค๋ฅธ ์ „ํ™”๋ฒˆํ˜ธ์˜ ์ ‘๋‘์–ด์— ์œ„์น˜ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค๋ฉด false๋ฅผ ๋ฐ˜ํ™˜, ์—†๋‹ค๋ฉด true๋ฅผ ๋ฐ˜ํ™˜

๐Ÿ”ด ์ œํ•œ์‚ฌํ•ญ

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

๐Ÿšฉ ์ ‘๊ทผ๋ฒ•

ํ•ด์‹œ ๋ฌธ์ œ๋ผ๊ณ  ํ–ˆ๊ธฐ๋•Œ๋ฌธ์— ์ฒ˜์Œ์—๋Š” ํ•ด์‹œ๋กœ ์ ‘๊ทผํ•ด์„œ ์ ‘๋‘์‚ฌ๋ฅผ key๋กœ ์ €์žฅํ•˜๊ณ  ํ•˜๋‚˜ํ•˜๋‚˜ ์ฒดํฌํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(n^2)์ด ๋‚˜์™€ ์‹œ๊ฐ„์ดˆ๊ณผ๋กœ ์‹คํŒจํ–ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ–ˆ์ง€๋งŒ ๋ฐฉ๋ฒ•์ด ๋– ์˜ค๋ฅด์ง€ ์•Š์•„, ๋‹ค๋ฅธ ๋ถ„๋“ค์˜ ๋ฐฉ๋ฒ•์„ ์ฐธ๊ณ ํ–ˆ๋‹ค. 

 

ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ†ตํ•ด some, indexOf, startsWith์˜ ์‚ฌ์šฉ๋ฒ•์„ ์ˆ™์ง€ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๐Ÿ’ก์ฝ”๋“œ

function solution(phone_book) {
    return !phone_book.sort().some((value, index, self) => self[index+1]?.indexOf(value) === 0);
}
  1. phone_book์„ ๋จผ์ € ์ •๋ ฌํ•˜์—ฌ ๋ฌธ์ž์—ด์˜ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์ค๋‹ˆ๋‹ค.
  2. some method๋Š” ๋ฐฐ์—ด ์ค‘ ํŠน์ • ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜๋Š” ์ผ€์ด์Šค๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์žˆ๋‹ค๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ํ˜„์žฌ์˜ ๊ฐ’์ธ value์™€ ๊ธฐ์กด array์ธ phone_book์„ ์˜๋ฏธํ•˜๋Š” self์˜ index+1์˜ ๊ฐ’์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.
  3. indexOf method๋ฅผ ์ด์šฉํ•˜์—ฌ value์˜ ๊ฐ’์ด self[index+1]์— ํฌํ•จ๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜ํ™˜๊ฐ’์€ ํฌํ•จ๋œ๋‹ค๋ฉด ํฌํ•จ๋˜๋Š” ์ฒซ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋‹ˆ ์ ‘๋‘์‚ฌ์— ์œ„์น˜ํ•œ๋‹ค๋ฉด 0์„ ๋ฐ˜ํ™˜ํ•ด์•ผ๊ฒ ์ฃ .
  4. 0์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋ฉด some์—์„œ ํ•˜๋‚˜๋ผ๋„ true๊ฐ€ ๋‚˜์˜จ๊ฒƒ์ด๋‹ˆ return๊ฐ’์€ true์˜ ๋ฐ˜๋Œ€์ธ false๊ฐ€ ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

startsWith๋ฅผ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ

function solution(phone_book) {
    return !phone_book.sort().some((value, index, self) => self[index+1]?.startsWith(value));
}
  • startsWith๋Š” ํ•ด๋‹น ๋ฌธ์ž์—ด์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋“ค์–ด๊ฐ„ value๊ฐ’์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š”์ง€๋ฅผ true or false๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น๋ฌธ์ œ์—์„œ๋Š” ํ›จ์”ฌ ๋” ์ง๊ด€์ ์ด๋ฏ€๋กœ ์‚ฌ์šฉํ•˜๊ธฐ์— ์ข‹๊ฒ ๋„ค์š”.
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'CS > Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Algorithm-JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”ํ…Œ Lv2 - ๊ธฐ๋Šฅ๊ฐœ๋ฐœ(array)  (0) 2024.08.07
[Algorithm-JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”ํ…Œ Lv2 - ์˜์ƒ(hashMap)  (0) 2024.08.04
[Algorithm-JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”ํ…Œ Lv1 - ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜(hashMap)  (0) 2024.08.01
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ธŒ๋ฃจํŠธ ํฌ์Šค(brute force) - ์™„์ „(์ „์ฒด) ํƒ์ƒ‰  (0) 2024.03.08
    'CS/Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Algorithm-JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”ํ…Œ Lv2 - ๊ธฐ๋Šฅ๊ฐœ๋ฐœ(array)
    • [Algorithm-JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”ํ…Œ Lv2 - ์˜์ƒ(hashMap)
    • [Algorithm-JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”ํ…Œ Lv1 - ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜(hashMap)
    • [์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ธŒ๋ฃจํŠธ ํฌ์Šค(brute force) - ์™„์ „(์ „์ฒด) ํƒ์ƒ‰
    ๐Ÿธminzzi
    ๐Ÿธminzzi

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”