์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ์ฝ๋ฉํ ์คํธ
- ์๋ฌ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ ธ๋js
- ๋ ธ๋
- ํ์ ์คํฌ๋ฆฝํธ
- angular
- ๋ฐฑ์๋
- Array
- Method
- error
- codingtest
- ์ฝ๋ฉํ ์คํธ์ฐ์ต
- react
- Programmers
- npm
- node
- slice
- ๊ฐ๋ฐ
- indexOf
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ง์์ปค๋ฅ์
- Nextjs
- Javascript
- ๋ ธ๋์ ์ด์์ค
- nodejs
- CLI
- Reduce
- ์ต๊ทค๋ฌ
- TypeScript
- Today
- Total
๋ชฉ๋กJavascript (28)
Suzie's Blog
์ด๋ฒคํธ ๋ฃจํ(Event Loop)์ ๊ฐ๋ ์ ์ค๋ช ํ๊ณ , ์๋ ์ฝ๋๊ฐ ์คํ๋ ๋ ์ฝ์์ ์ถ๋ ฅ๋๋ ์์๋ฅผ ์์ธกํด๋ณด์ธ์.console.log("A");setTimeout(() => console.log("B"), 0);Promise.resolve().then(() => console.log("C"));console.log("D"); ๋๋ณด๊ธฐ๋๋ณด๊ธฐ๋๋ณด๊ธฐโ ์ ๋ต : "A", "D", "C", "B"- ์ฝ๋๊ฐ ์คํ์ด ๋๊ณ "A" ๊ฐ ์ฒ์ ์คํ๋์ด ์ฝ์์ ์ฐํ.- WebAPI์์ "B" ๊ฐ ์คํ๋๊ณ task queue๋ก ์ด๋- ์์ฒด์ ๋น๋๊ธฐ์ธ Promise๋ microtask queue๋ก ์ด๋- ๋ง์ง๋ง ์ฝ๋๊ฐ ์คํ๋๊ณ "D" ๊ฐ ์ฝ์์ ์ฐํ.- ์ฐ์ ์์๊ฐ microtask queue๊ฐ ์ฐ์ ์ด๋ฏ๋ก "C" ๊ฐ ์ฝ์์ ์ฐํ๊ณ ..
๊ฐ๋ฐํ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉํ useEventListener hook ์ด๋ค. (Next.js, TypeScript)src > utils > hooks ์ ์ ์ฅ ํ importํ์ฌ ์ฌ์ฉ ํ๋ฉด ์ฝ๋๋ ๊ฐํธํด์ง๊ณ ํธํจ.import { useEffect, useRef } from "react";function useEventListener( eventType: K, handler: (event: WindowEventMap[K]) => void, element: HTMLElement | Document | Window | null = typeof window !== "undefined" ? window : null) { const savedHandler = useRef void | null>(n..
๋ฌธ์ ์ค๋ช ์ ์ ๋ฐฐ์ด arr๊ฐ ์ฃผ์ด์ง๋๋ค. arr์ ๊ฐ ์์์ ๋ํด ๊ฐ์ด 50๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ์ง์๋ผ๋ฉด 2๋ก ๋๋๊ณ , 50๋ณด๋ค ์์ ํ์๋ผ๋ฉด 2๋ฅผ ๊ณฑํ๊ณ ๋ค์ 1์ ๋ํฉ๋๋ค. ์ด๋ฌํ ์์ ์ x๋ฒ ๋ฐ๋ณตํ ๊ฒฐ๊ณผ์ธ ๋ฐฐ์ด์ arr(x)๋ผ๊ณ ํํํ์ ๋, arr(x) = arr(x + 1)์ธ x๊ฐ ํญ์ ์กด์ฌํฉ๋๋ค. ์ด๋ฌํ x ์ค ๊ฐ์ฅ ์์ ๊ฐ์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ๋จ, ๋ ๋ฐฐ์ด์ ๋ํ "="๋ ๋ ๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ ์๋ก ๊ฐ์ผ๋ฉฐ, ๊ฐ์ ์ธ๋ฑ์ค์ ์์๊ฐ ๊ฐ๊ฐ ์๋ก ๊ฐ์์ ์๋ฏธํฉ๋๋ค. ์ ํ์ฌํญ โ 1 ≤ arr์ ๊ธธ์ด ≤ 1,000,000 โ 1 ≤ arr์ ์์์ ๊ฐ ≤ 100 ์ ์ถ๋ ฅ ์ arr result [1, 2, 3, 100, 99, 98] 5 ์ ์ถ๋ ฅ ์ ์ค๋ช ์ ์ถ๋ ฅ ์ #1..
๋ฌธ์ ์ค๋ช ๋ฌธ์์ด myString๊ณผ pat๊ฐ ์ฃผ์ด์ง๋๋ค. myString์ ๋ถ๋ถ ๋ฌธ์์ด์ค pat๋ก ๋๋๋ ๊ฐ์ฅ ๊ธด ๋ถ๋ถ ๋ฌธ์์ด์ ์ฐพ์์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ์ ํ์ฌํญ • 5 ≤ myString ≤ 20 • 1 ≤ pat ≤ 5 → pat์ ๋ฐ๋์ myString์ ๋ถ๋ถ ๋ฌธ์์ด๋ก ์ฃผ์ด์ง๋๋ค. • myString๊ณผ pat์ ๋ฑ์ฅํ๋ ์ํ๋ฒณ์ ๋๋ฌธ์์ ์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ์ถ๋ ฅ ์ myString pat result "AbCdEFG" "dE" "AbCdE" "AAAAaaaa" "a" "AAAAaaaa" ์ ์ถ๋ ฅ ์ ์ค๋ช ์ ์ถ๋ ฅ ์ #1 • "AbCdEFG"์์ "dE"๋ ํ ๋ฒ ๋ฑ์ฅํ๋ฉฐ ์ฒ์๋ถํฐ ํด๋น ์์น๊น์ง ์๋ผ๋ด๋ฉด "AbCdE"๊ฐ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ด ๋ฌธ์์ด์ด "dE"๋ก ..
๋ฌธ์ ์ค๋ช ๋ฌธ์์ด myString๊ณผ pat์ด ์ฃผ์ด์ง๋๋ค. myString์์ pat์ด ๋ฑ์ฅํ๋ ํ์๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ์ ํ์ฌํญ 1 ≤ myString ≤ 1000 1 ≤ pat ≤ 10 ์ ์ถ๋ ฅ ์ myString pat result "banana" "ana" 2 "aaaa" "aa" 3 ์ ์ถ๋ ฅ ์ ์ค๋ช ์ ์ถ๋ ฅ ์ #1 "banana"์์ 1 ~ 3๋ฒ ์ธ๋ฑ์ค์์ ํ ๋ฒ, 3 ~ 5๋ฒ ์ธ๋ฑ์ค์์ ๋ ํ ๋ฒ "ana"๊ฐ ๋ฑ์ฅํด์ ์ด ๋ ๋ฒ ๋ฑ์ฅํฉ๋๋ค. ๋ฐ๋ผ์ 2๋ฅผ return ํฉ๋๋ค. ์ ์ถ๋ ฅ ์ #2 "aaaa"์์ 0 ~ 2๋ฒ ์ธ๋ฑ์ค์์ ํ ๋ฒ, 1 ~ 3๋ฒ ์ธ๋ฑ์ค์์ ํ ๋ฒ, 2 ~ 4๋ฒ ์ธ๋ฑ์ค์์ ํ ๋ฒ "aa"๊ฐ ๋ฑ์ฅํด์ ์ด ์ธ ๋ฒ ๋ฑ์ฅํฉ๋๋ค. ๋ฐ๋ผ์ 3์ re..
๋ฌธ์ ์ค๋ช ๋ฌธ์์ด my_string๊ณผ ์ ์ s, e๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, my_string์์ ์ธ๋ฑ์ค s๋ถํฐ ์ธ๋ฑ์ค e๊น์ง๋ฅผ ๋ค์ง์ ๋ฌธ์์ด์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ์ ํ์ฌํญ - my_string์ ์ซ์์ ์ํ๋ฒณ์ผ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. - 1 ≤ my_string์ ๊ธธ์ด ≤ 1,000 - 0 ≤ s ≤ e < my_string์ ๊ธธ์ด ์ ์ถ๋ ฅ ์ my_string s e result "Progra21Sremm3" 6 12 "ProgrammerS123" "Stanley1yelnatS" 4 10 "Stanley1yelnatS" ์ ์ถ๋ ฅ ์ ์ค๋ช ์ ์ถ๋ ฅ ์ #1 - ์์ 1๋ฒ์ my_string์์ ์ธ๋ฑ์ค 6๋ถํฐ ์ธ๋ฑ์ค 12๊น์ง๋ฅผ ๋ค์ง์ ๋ฌธ์์ด์ "ProgrammerS123"..
๋ฌธ์ ์ค๋ช ์ ์ ๋ฐฐ์ด arr์ 2์ฐจ์ ์ ์ ๋ฐฐ์ด queries์ด ์ฃผ์ด์ง๋๋ค. queries์ ์์๋ ๊ฐ๊ฐ ํ๋์ query๋ฅผ ๋ํ๋ด๋ฉฐ, [s, e] ๊ผด์ ๋๋ค. ๊ฐ query๋ง๋ค ์์๋๋ก s ≤ i ≤ e์ธ ๋ชจ๋ i์ ๋ํด arr[i]์ 1์ ๋ํฉ๋๋ค. ์ ๊ท์น์ ๋ฐ๋ผ queries๋ฅผ ์ฒ๋ฆฌํ ์ดํ์ arr๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ์ ํ์ฌํญ - 1 ≤ arr์ ๊ธธ์ด ≤ 1,000 - 0 ≤ arr์ ์์ ≤ 1,000,000 - 1 ≤ queries์ ๊ธธ์ด ≤ 1,000 - 0 ≤ s ≤ e < arr์ ๊ธธ์ด ์ ์ถ๋ ฅ ์ arr queries result [0, 1, 2, 3, 4] [[0, 1],[1, 2],[2, 3]] [1, 3, 4, 4, 4] ์ ์ถ๋ ฅ ์ ์ค๋ช ์ ์ถ๋ ฅ ..
ํญ์ ํ๋๋๋ก ์ปดํจํฐ๋ฅผ ์ผ์๋ง์ ํ๋ก๊ทธ๋๋จธ์ค ์น์ฌ์ดํธ์ ์ ์ํด์ ๊ธฐ์ด ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด๋ ค๊ณ ํ์๋ค. ๊ทผ๋ฐ ๋ฌธ์ ์์ฒด๋ฅผ ์ดํดํ์ง ๋ชปํ๊ฒ ๋๊ฑฐ.. ใ ใ ์ํ ๊ณต๋ถ ์ํ์ง ๋ฒ์จ ๋ช๋ง์๊ฐ์ด ํ๋ฅธ๊ฑฐ ๊ฐ์๋ฐ ใ ใ ใ ใ ใ ๋ฑ์ฐจ์์ด? ๊ณต์ฐจ? ์ด๋ฆ์ ์ต์ํ๋ ๋ฑ์ฐจ์์ด์ด ๋ญ์๋์ง ๊ธฐ์ต๋ ์๋๋ค.. ์ด๋ฐ ๋์๊ฐ์ ์ํฉ์ ๋ง์ฃผ์น ๋ถ๋ค์๊ฒ ๋์์ ์ฃผ๊ณ ์ ๊ทธ๋ฆฌ๊ณ ๋ ์์ ๋ ๊ณต๋ถํด๋ณด๊ธฐ ์ํด ์ด ํฌ์คํธ๋ฅผ ์์ฑํ๊ฒ ๋์๋ค..! ์ผ๋จ ์ ๋ชฉ๋ถํฐ ๋ถ์ ํด๋ณด์! "๋ฑ์ฐจ์์ด์ ํน์ ํ ํญ๋ง ๋ํ๊ธฐ" ๋ฑ์ฐจ์์ด์ด๋? 1,3,5,7,9.... ์ฒ๋ผ ์ฐ์ํ ๋ ํญ์ ์ฐจ๊ฐ ์ผ์ ํ ์์ด์ ๋ฑ์ฐจ์์ด์ด๋ผ๊ณ ํจ. ๊ณต์ฐจ๋? ์ฐ์ํ ๋ ํญ์์, ๋ค ํญ์์ ์ ํญ์ ๋บ ๊ฐ์ ๊ณต์ฐจ(Common difference)๋ผ๊ณ ํจ ์๋ฅผ ๋ค๋ฉด, 1,3,5,7,9์ ๊ณต์ฐจ๋ 2 ..
๋ฌธ์ ์ค๋ช ์ ์ ๋ฐฐ์ด arr๊ฐ ์ฃผ์ด์ง๋๋ค. ์ด๋ arr์ ์์๋ 1 ๋๋ 0์ ๋๋ค. ์ ์ idx๊ฐ ์ฃผ์ด์ก์ ๋, idx๋ณด๋ค ํฌ๋ฉด์ ๋ฐฐ์ด์ ๊ฐ์ด 1์ธ ๊ฐ์ฅ ์์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์์ ๋ฐํํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ๋จ, ๋ง์ฝ ๊ทธ๋ฌํ ์ธ๋ฑ์ค๊ฐ ์๋ค๋ฉด -1์ ๋ฐํํฉ๋๋ค. ์ ํ์ฌํญ 3 ≤ arr์ ๊ธธ์ด ≤ 100'000 arr์ ์์๋ ์ ๋ถ 1 ๋๋ 0์ ๋๋ค. ์ ์ถ๋ ฅ ์ arr idx result [0, 0, 0, 1] 1 3 [1, 0, 0, 1, 0, 0] 4 -1 [1, 1, 1, 1, 0] 3 3 ์ ์ถ๋ ฅ ์ ์ค๋ช ' ์ ์ถ๋ ฅ ์ #1 1๋ณด๋ค ํฌ๋ฉด์ ์์๊ฐ 1์ธ ๊ฐ์ฅ ์์ ์ธ๋ฑ์ค๋ 3์ ๋๋ค. ๋ฐ๋ผ์ 3์ return ํฉ๋๋ค. ์ ์ถ๋ ฅ ์ #2 4๋ฒ ์ธ๋ฑ์ค ์ดํ์ 1์ ๋ฑ์ฅํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ -1์..
๋ฌธ์ ์ค๋ช ์๋ฌด ์์๋ ๋ค์ด์์ง ์์ ๋น ๋ฐฐ์ด X๊ฐ ์์ต๋๋ค. ์์ ์ ์ ๋ฐฐ์ด `arr`๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, `arr`์ ์์์๋ถํฐ ์ฐจ๋ก๋๋ก ์์๋ฅผ ๋ณด๋ฉด์ ์์๊ฐ a๋ผ๋ฉด X์ ๋งจ ๋ค์ a๋ฅผ a๋ฒ ์ถ๊ฐํ๋ ์ผ์ ๋ฐ๋ณตํ ๋ค์ ๋ฐฐ์ด X๋ฅผใน return ํ๋ solutionํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ์ ํ์ฌํญ 1 ≤ arr์ ๊ธธ์ด ≤ 100 1 ≤ arr์ ์์ ≤ 100 ์ ์ถ๋ ฅ ์ arr result [5, 1, 4] [5, 5, 5, 5, 5, 1, 4, 4, 4, 4] [6, 6] [6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6] [1] [1] ์ ์ถ๋ ฅ ์ ์ค๋ช ์ ์ถ๋ ฅ ์ #1 ์์ 1๋ฒ์ ๋ํด์ a์ X๋ฅผ ๋ํ๋ด๋ณด๋ฉด ๋ค์ ํ์ ๊ฐ์ต๋๋ค. a X [] 5 [5, 5, 5, 5, 5] 1 [5..