728x90
๋ฐ˜์‘ํ˜•
 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

๊ฐœ๋ฐœ/ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

nvm cb.apply is not a function ์—๋Ÿฌ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

๋ฆฌ์•กํŠธ CRA ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด create-react-app ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ์•„๋ž˜์™€ ๊ฐ™์€ ๋œฌ๊ธˆ์—†๋Š” ๋ถ€๋ถ„์—์„œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. npx create-react-app my-app npm ERR! cb.apply is not a function npm ERR! A complete log of this run can be found in: npm ERR! /Users/ruden/.npm/_logs/2022-06-13T23_08_56_668Z-debug.log [ 'create-react-app@latest' ] ์„ค์น˜๊ฐ€ ์˜ค๋ฅ˜ ์ฝ”๋“œ 1๋กœ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค ๋กœ์ปฌ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” nvm ํŒจํ‚ค์ง€์™€ ๊ด€๋ จ๋œ ์ด์Šˆ์ธ ๊ฒƒ์„ ํ™•์ธํ–ˆ๊ณ , ์•„๋ž˜์™€ ๊ฐ™์ด ์„ธํŒ…ํ•ด์ฃผ๋ฉด ๊น”๋”ํ•˜๊ฒŒ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋œ๋‹ค. nvm alias default ..

2022.06.14 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

ํˆฌ์ž/๋ฆฌ์ธ (REITs)

๊ตญ๋‚ด ์ตœ์ดˆ ๋ฆฌ์ธ  ETF ARIRANG Fn K๋ฆฌ์ธ  ํˆฌ์žํ• ๋งŒํ•œ ๊ฐ€์น˜๊ฐ€ ์žˆ์„๊นŒ?

ARIRANG Fn K๋ฆฌ์ธ  ETF๋Š” ๊ตญ๋‚ด ์ƒ์žฅ๋œ ๋ถ€๋™์‚ฐ ๊ด€๋ จ ์ง‘ํ•ฉํˆฌ์ž์ฆ๊ถŒ(REITs ํฌํ•จ)์„ ๋ฒ• ์‹œํ–‰๋ น ์ œ94์กฐ์ œ2ํ•ญ์ œ4ํ˜ธ์—์„œ ๊ทœ์ •ํ•˜๋Š” ์ฃผ๋œ ํˆฌ์ž๋Œ€์ƒ์ž์‚ฐ์œผ๋กœ ํ•˜๋ฉฐ, 1์ขŒ๋‹น ์ˆœ์ž์‚ฐ๊ฐ€์น˜์˜ ์ผ๊ฐ„๋ณ€๋™๋ฅ ์„ FnGuide ๋ฆฌ์ธ  ์ง€์ˆ˜์˜ 1๋ฐฐ์ˆ˜์™€ ์œ ์‚ฌํ•˜๋„๋ก ํˆฌ์ž์‹ ํƒ์žฌ์‚ฐ์„ ์šด์šฉํ•จ์„ ๋ชฉ์ ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. (์žฌ๊ฐ„์ ‘ REITs ์ข…๋ชฉ ์ œ์™ธ) ๊ธฐ๋ณธ์ •๋ณด ์ด๋ฆ„ ํ•œํ™” ARIRANG Fn K ๋ฆฌ์ธ  ๋ถ€๋™์‚ฐ์ƒ์žฅ์ง€์ˆ˜ํˆฌ์ž์‹ ํƒ(์žฌ๊ฐ„์ ‘ํ˜•) ์ž์‚ฐ์šด์šฉ์‚ฌ ํ•œํ™”์ž์‚ฐ์šด์šฉ์ฃผ์‹ํšŒ์‚ฌ ์ƒ์žฅ์ผ 2022-05-24 ์šด์šฉ์ˆ˜์ˆ˜๋ฃŒ ์—ฐ 0.5641% ์‹œ๊ฐ€์ด์•ก - ๋ถ„๋ฐฐ๊ธˆ 1, 4, 7, 10์›” ๋ณด์œ  ์ฃผ์‹์ˆ˜ 13 ํฌํŠธํด๋ฆฌ์˜ค ์‚ดํŽด๋ณด๊ธฐ ์ˆ˜์ˆ˜๋ฃŒ ์ˆ˜์ˆ˜๋ฃŒ ๋ฐ ์ด๋ณด์ˆ˜๋Š” 0.25๋กœ ์ ๋‹นํ•œ ์ถ•์— ์†ํ•˜์ง€๋งŒ ํˆฌ์ž์„ค๋ช…์„œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ๋น„์šฉ๊นŒ์ง€ ์ด 0.5641%%๋กœ ์€๊ทผ์Šฌ์ฉ ์•ฝ 0.3%๋ฅผ ๋˜ ๊ปด๋„ฃ๋„ค์š”. ..

2022.05.24 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

๊ฐœ๋ฐœ/Next.js

[Next.js] AWS Amplify withSSRContext the user is not authenticated ์ด์Šˆ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

Next.js ํ”„๋กœ์ ํŠธ์—์„œ ์ธ์ฆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ AWS Cognito Amplify๋ฅผ ํ™œ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์„œ๋ฒ„์‚ฌ์ด๋“œ์—์„œ ์ธ์ฆ ์ฒดํฌ๋ฅผ ์œ„ํ•ด withSSRContext์—์„œ ์ฟ ํ‚ค ๊ธฐ๋ฐ˜์œผ๋กœ ์ฒดํฌํ•  ๋•Œ ๊ณ„์† the user is not authenticated ์—๋Ÿฌ๋ฅผ ๋ฑ‰์–ด๋‚ด๋Š” ์ด์Šˆ๊ฐ€ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ์—์„œ ์ฒดํฌํ•˜๋Š” useAuth hook์—์„œ๋Š” ์ •์ƒ์ ์œผ๋กœ ์ž˜ ์ž‘๋™ํ•˜๋Š”๋ฐ ์ด์ƒํ•˜๊ฒŒ ์„œ๋ฒ„์—์„œ๋งŒ.. Dependencies "aws-amplify": "^4.3.21" "next": "^12.1.6" ์›์ธ ์ €์˜ ๊ฒฝ์šฐ ์ด๋ฉ”์ผ ๊ธฐ๋ฐ˜์œผ๋กœ ์œ ์ €์ด๋ฆ„์„ ์„ธํŒ…ํ•˜์˜€๊ณ , ์ด๋ฉ”์ผ ๊ณ„์ • ruden91@naver.com๋กœ ๋กœ๊ทธ์ธ์„ ํ•  ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด ์ฟ ํ‚ค ํ‚ค๊ฐ€ ์„ธํŒ…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. CognitoIdentityServiceProvider.{use..

2022.05.10 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

๊ฐœ๋ฐœ/Next.js

SWR useSWRInfinite fallback ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•

Next.js์—์„œ SWR์„ ํ™œ์šฉํ•  ๋•Œ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•ด์„œ Pre-rendering์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด useSWRInfinite์—์„œ fallback ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ ค๊ณ  ํ–ˆ์œผ๋‚˜ Pre-rendering๊ฐ€ ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. fallbackData๋กœ ์ฒ˜๋ฆฌํ•˜๋ ค๊ณ  ํ–ˆ์ง€๋งŒ ์˜ˆ์ƒ๊ณผ๋Š” ๋‹ค๋ฅธ ๋™์ž‘์œผ๋กœ ์ธํ•ด fallback์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ข€ ๋” ๊ณ ๋ฏผํ–ˆ์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. const { data, error, isValidating, mutate, size, setSize } = useSWRInfinite( getKey, fetchFinder, { fallback: { "hello": [] } } ); ์•„๋ž˜์™€ ๊ฐ™์ด useSWRConfig๋ฅผ ํ†ตํ•ด ์บ์‹œ๋œ key๋“ค์„ ์‚ดํŽด๋ณด๋Š” ์™€์ค‘์— useSWRInf..

2022.04.30 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

๊ฐœ๋ฐœ/Nuxt.js

SWRConfig fallback์— arguments ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ• (How to include arguments with key for fallback data in <SWRConfig>)

Next.js ํ”„๋กœ์ ํŠธ์—์„œ SWR์„ ํ™œ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ, SWRConfig์˜ fallback์„ ์‚ฌ์šฉํ•  ๋•Œ arguments๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด fallback ์‚ฌ์šฉ ์˜ˆ์‹œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. unstable_serialize์„ ํ™œ์šฉํ•˜๋ฉด arguments๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. import { unstable_serialize } from 'swr' โ€ฆ export async function getStaticProps() { const data = await fetcher('pokemon'); return { props: { fallback: { [unstable_serialize([GRAPHQL_ENDPOINT, graphqlQuery])]: data // "/my/api/ke..

2022.04.27 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

๊ฐœ๋ฐœ/Git

Github Actions ์›Œํ‚น ๋””๋ ‰ํ† ๋ฆฌ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ• (working directory default)

๋ชจ๋…ธ๋ ˆํฌ ๋ฐฉ์‹๊ณผ ๊ฐ™์ด ํ•˜๋‚˜์˜ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ๋‹ค์–‘ํ•œ ํŒจํ‚ค์ง€๋‚˜ ์•ฑ๋“ค์„ ๊ด€๋ฆฌํ•  ๊ฒฝ์šฐ ํŠน์ • ๋””๋ ‰ํ† ๋ฆฌ๋งŒ Github Actions๋ฅผ ์ ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. jobs์—์„œ defaults์˜ working-directory๋ฅผ ์„ค์ •ํ•˜๋ฉด ๊ต‰์žฅํžˆ ์‰ฝ๊ฒŒ ์ด ๋ถ€๋ถ„์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. defaults: run: working-directory: "./apps/my-test-app" ์‹ค์ œ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์‹ค๋ฌด์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "apps/my-test-app/**" ํด๋”์—์„œ ์ฝ”๋“œ๊ฐ€ ์ˆ˜์ •๋˜๊ณ , develop ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ๋˜๋ฉด ํ•ด๋‹น ์›Œํฌํ”Œ๋กœ์šฐ๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๊ธฐ๋ณธ ์›Œํ‚น ๋””๋ ‰ํ† ๋ฆฌ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด "./apps/my-test-app"์œผ๋กœ ์„ค์ •๋˜๊ณ , ๊นƒํ—ˆ๋ธŒ ์•ก์…˜์ด ๋™์ž‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. # .github/workflows/de..

2022.04.25 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

๊ฐœ๋ฐœ/Docker

Next.js Docker ์ปจํ…Œ์ด๋„ˆ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ• (Using Docker with Next.js)

์ตœ๊ทผ ํšŒ์‚ฌ์—์„œ AWS Elastic Beanstalk ๊ธฐ๋ฐ˜์—์„œ AWS ECS + Fargate ์กฐํ•ฉ์œผ๋กœ ๋ฐฐํฌ ๋ฐฉ์‹์„ ๋ณ€๊ฒฝํ•จ์œผ๋กœ์จ ๋„์ปค๋ฅผ ํ™œ์šฉํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ณ , ์ปจํ…Œ์ด๋„ˆ ๋ฐฐํฌํ•˜๋Š” ๊ณผ์ •์€ ๊ต‰์žฅํžˆ ๊ฐ„๋‹จํ•˜์ง€๋งŒ, AWS ECS, ECR ๊ทธ๋ฆฌ๊ณ  ํŒŒ๊ฒŒ์ดํŠธ(Fargate)๋ฅผ ํ™œ์šฉํ•ด์„œ ์›น์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ณผ์ •์€ ์ƒ๊ฐ๋ณด๋‹ค ๊นŒ๋‹ค๋กญ๊ณ  ๋ถ€์ฐจ์ ์œผ๋กœ ๊ณต๋ถ€ํ•ด์•ผ ๋  ๋ถ€๋ถ„์ด ๊ต‰์žฅํžˆ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋„์ปค๋ฅผ ํ™œ์šฉํ•ด์„œ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ๋ฐฐํฌํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๊ณผ์ •๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ AWS ECS + Fargate๋ฅผ ํ™œ์šฉํ•ด์„œ ์›น์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ•ด๋ณด๊ณ , Github Actions์™€ AWS Codedeploy๋ฅผ ํ™œ์šฉํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ(Blue/Green) ์ž๋™ํ™” ๊ณผ์ •๊นŒ์ง€ ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Next.js + Docker ์„ธํŒ… Next.j..

2022.04.23 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

๊ฐœ๋ฐœ/ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

๋„์ปค ์ด๋ฏธ์ง€ ๋นŒ๋“œ ์บ์‹œ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ• (how to clear docker build cache)

๋„์ปค ์ด๋ฏธ์ง€ ๋นŒ๋“œ๋ฅผ ํ•  ๋•Œ ์บ์‹œ๋ฅผ ๋ฌดํšจํ™”์‹œํ‚ค๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด ๊ฒฝ์šฐ์— ์•„๋ž˜์˜ ์˜ต์…˜(--no-cache)์„ ๋„ฃ์œผ๋ฉด ์†์‰ฝ๊ฒŒ ์บ์‹œ ๋ฌดํšจํ™”๋ฅผ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. docker build --no-cache -t my/app .

2022.04.12 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

๊ฐœ๋ฐœ/ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

git ๋Œ€์†Œ๋ฌธ์ž ํŒŒ์ผ๋ช… ํด๋”๋ช… ์˜ค๋ฅ˜ (Changing capitalization of filenames in Git)

์›์ธ git ๊ธฐ๋ณธ์„ค์ •์€ ํŒŒ์ผ, ํด๋”๋ช…์˜ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. git์ด ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •์„ ๋ณ€๊ฒฝํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๊ฒฐ๋ฐฉ๋ฒ• git config core.ignorecase false

2022.03.27 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

๊ฐœ๋ฐœ/ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

[Jest] Scss "Syntax Error: Invalid or unexpected token" ์—๋Ÿฌ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

Jest์—์„œ ๊ฐ์ง€ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” scssํŒŒ์ผ์— ์ ‘๊ทผํ•ด์„œ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ์ž…๋‹ˆ๋‹ค. ๊ตณ์ด Jest์—์„œ ํŒŒ์•…ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ํŒŒ์ผ๋“ค์€ ํŒจ์Šคํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. /Users/ruden/Desktop/development/2022/test/src/components/Progressbar/progressbar.scss:1 ({"Object.":function(module,exports,require,__dirname,__filename,jest){@import '../../styles/variables.scss'; ^ SyntaxError: Invalid or unexpected token > 1 | import "./progressbar.scss"; | ^ 2 | 3 | class Progressbar { 4 | private..

2022.02.19 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

๊ฐœ๋ฐœ/ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

vscode eslint export a CLIEngine ์—๋Ÿฌ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

yarn add --dev eslint { ... "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, "eslint.validate": [ "javascript", "javascriptreact", "typescript", "typescriptreact", ] } [Info - 10:31:57 AM] ESLint server stopped. [Info - 10:31:58 AM] ESLint server running in node v12.8.1 [Info - 10:31:58 AM] ESLint server is running. [Error - 10:31:59 AM] The eslint library loaded from /Users/ruden/D..

2022.02.19 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

Computer science/์•Œ๊ณ ๋ฆฌ์ฆ˜

[๋ฐฑ์ค€, node.js] 2004๋ฒˆ "์กฐํ•ฉ 0์˜ ๊ฐœ์ˆ˜" ๋ฌธ์ œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

๋ฌธ์ œ ์˜ˆ์ œ ์ž…๋ ฅ & ์ถœ๋ ฅ ์ž…๋ ฅ ์ถœ๋ ฅ ์†Œ์Šค์ฝ”๋“œ ์กฐํ•ฉ nCm์˜ ๋์ž๋ฆฌ 0์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ 2์˜ ์Šน์ˆ˜(a1 - b1, c1) ์™€ 5์˜ ์Šน์ˆ˜(a2 - b2 - c2) ๊ฐ€ ๊ตฌํ•ด์กŒ์œผ๋ฉด ๊ฒน์น˜๋Š”(์ง์ง€์„ ์ˆ˜ ์žˆ๋Š”) ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋ฉด ๋˜๋ฏ€๋กœ, 2์™€ 5์˜ ์Šน์ˆ˜ ์ค‘ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅ const fs = require('fs'); let [n, m] = fs.readFileSync('./dev/stdin').toString().split(' '); n = Number(n) m = Number(m) function getPowerN(num, power) { let count = 0; while(num >= power) { count += parseInt(num / power); num /= power; } return count..

2022.02.13 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

Computer science/Data Structure

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ํ(Queue) ์ž๋ฃŒ๊ตฌ์กฐ ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ

ํ(Queue) ์ž๋ฃŒ๊ตฌ์กฐ๋ž€? ํ(Queue)๋Š” ๊ฐ€์žฅ ๋จผ์ € ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ๋‚˜๊ฐ€๋Š”(์„ ์ž…์„ ์ถœ, FIFO(First In First Out)) ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์ผ์ƒ์ƒํ™œ์—์„œ๋„ ์‰ฝ๊ฒŒ ์ ‘ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”. ์˜ํ™”๊ด€์—์„œ ์˜ํ™”๋ฅผ ๋ณด๋Ÿฌ ๋“ค์–ด๊ฐ€๊ธฐ ์œ„ํ•ด ๋Œ€๊ธฐํ•˜๊ฑฐ๋‚˜, ๋น„ํ–‰๊ธฐ๋ฅผ ํƒ‘์Šนํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€๊ธฐ๋ฅผ ํ•  ๋•Œ ๋จผ์ € ์ค„์„ ์„  ์‚ฌ๋žŒ์ด ๋จผ์ € ๋“ค์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐ”๋กœ ํ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ๊ตฌํ˜„ ์˜ˆ์‹œ ๊ต‰์žฅํžˆ ๋‹จ์ˆœํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ๊ฒฝ์šฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฐ์—ด ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ํ™œ์šฉํ•ด์„œ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐ์—ด ํ™œ์šฉ ์˜ˆ์‹œ ๋ฐฐ์—ด์˜ push, pop, unshift, shift ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(1)์ด์ง€๋งŒ, ๋ฐ์ดํ„ฐ๋ฅผ ํ• ๋‹น/์ œ๊ฑฐ ํ›„ ๋ฐฐ์—ด์„ ์žฌ๊ตฌ์„ฑํ•ด์•ผ๋˜๊ธฐ ๋•Œ๋ฌธ์— O(N) ๋ณต์‚ฌ ๋น„์šฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•  ..

2022.02.12 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

Computer science/Data Structure

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ(Linked List) ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ (1)

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ(Linked List)๋ž€? ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋Š” ๋ชจ๋“  ์š”์†Œ(a.k.a ๋…ธ๋“œ)๊ฐ€ ๋‹ค์Œ ์š”์†Œ์— ์—ฐ๊ฒฐ๋œ ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•™๊ต์˜ ํ•œ ๋ฐ˜์— ์žˆ๋Š” ํ•™์ƒ๋“ค์„ ๋ฐ์ดํ„ฐ๋กœ ์ €์žฅํ•œ๋‹ค๋ฉด, 1๋ฒˆ ํ•™์ƒ ๋ฐ์ดํ„ฐ๋ฅผ ๋…ธ๋“œ๋กœ ์ƒ์„ฑํ•  ๋•Œ 2๋ฒˆ ํ•™์ƒ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋””์— ์žˆ๋Š”์ง€ ๋…ธ๋“œ์˜ ์œ„์น˜๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ž๋ฃŒ๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ์šด ์ž๋ฃŒ๋ฅผ ์•ž์ชฝ์— ์ถ”๊ฐ€/์‚ญ์ œํ•  ๋•Œ ๊ต‰์žฅํžˆ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํŠน์ •ํ•œ ์ž๋ฃŒ๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ๋Š” ๋ฌด์กฐ๊ฑด ์ˆœํšŒํ•˜๋ฉฐ ์ฐพ์•„๊ฐ€๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ •ํ•œ ๋…ธ๋“œ๋ฅผ ์ฐพ๊ธฐ ๊นŒ๋‹ค๋กญ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„ ์˜ˆ์‹œ์—์„œ 3๋ฒˆ ํ•™์ƒ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„  2๋ฒˆ ํ•™์ƒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌด์กฐ๊ฑด ๊ฑฐ์ณ์•ผ 3๋ฒˆ ํ•™์ƒ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋””์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ 1๋งŒ๋ช…์˜ ํ•™์ƒ๋“ค์ด ์—ฎ์—ฌ์žˆ๋‹ค๋ฉด, ํŠน์ • ํ•™์ƒ์„ ์ฐพ์„ ๋•Œ๋งˆ๋‹ค ๊ฝค..

2022.02.12 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

๊ฐœ๋ฐœ/๊ธฐํƒ€

nvm ๊ธฐ๋ณธ(default) ๋…ธ๋“œ ๋ฒ„์ „ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•

nvm์—์„œ ๊ธฐ๋ณธ ๋…ธ๋“œ ๋ฒ„์ „ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์€ nvm์—์„œ ๋ฐ”๋ผ๋ณด๊ณ  ์žˆ๋Š” default alias๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ํ˜„์žฌ 12.21.0 ๋ฒ„์ „์„ default๋กœ ๋ฐ”๋ผ๋ณด๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. default๋ฅผ 16.13.2๋กœ ๋ณ€๊ฒฝํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ nvm ๋ช…๋ น์–ด๋กœ default alias๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. nvm alias default 16.13.2

2022.02.05 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

Computer science/์•Œ๊ณ ๋ฆฌ์ฆ˜

[๋ฐฑ์ค€, node.js] 11729๋ฒˆ "ํ•˜๋…ธ์ด ํƒ‘ ์ด๋™ ์ˆœ์„œ" ๋ฌธ์ œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

๋ฌธ์ œ ์„ธ ๊ฐœ์˜ ์žฅ๋Œ€๊ฐ€ ์žˆ๊ณ  ์ฒซ ๋ฒˆ์งธ ์žฅ๋Œ€์—๋Š” ๋ฐ˜๊ฒฝ์ด ์„œ๋กœ ๋‹ค๋ฅธ n๊ฐœ์˜ ์›ํŒ์ด ์Œ“์—ฌ ์žˆ๋‹ค. ๊ฐ ์›ํŒ์€ ๋ฐ˜๊ฒฝ์ด ํฐ ์ˆœ์„œ๋Œ€๋กœ ์Œ“์—ฌ์žˆ๋‹ค. ์ด์ œ ์ˆ˜๋„์Šน๋“ค์ด ๋‹ค์Œ ๊ทœ์น™์— ๋”ฐ๋ผ ์ฒซ ๋ฒˆ์งธ ์žฅ๋Œ€์—์„œ ์„ธ ๋ฒˆ์งธ ์žฅ๋Œ€๋กœ ์˜ฎ๊ธฐ๋ ค ํ•œ๋‹ค. ํ•œ ๋ฒˆ์— ํ•œ ๊ฐœ์˜ ์›ํŒ๋งŒ์„ ๋‹ค๋ฅธ ํƒ‘์œผ๋กœ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ๋‹ค. ์Œ“์•„ ๋†“์€ ์›ํŒ์€ ํ•ญ์ƒ ์œ„์˜ ๊ฒƒ์ด ์•„๋ž˜์˜ ๊ฒƒ๋ณด๋‹ค ์ž‘์•„์•ผ ํ•œ๋‹ค. ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ด๋™ ์ˆœ์„œ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ. ๋‹จ, ์ด๋™ ํšŸ์ˆ˜๋Š” ์ตœ์†Œ๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์€ ์›ํŒ์ด 5๊ฐœ์ธ ๊ฒฝ์šฐ์˜ ์˜ˆ์‹œ์ด๋‹ค. ์˜ˆ์ œ ์ž…๋ ฅ & ์ถœ๋ ฅ ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ฒซ ๋ฒˆ์งธ ์žฅ๋Œ€์— ์Œ“์ธ ์›ํŒ์˜ ๊ฐœ์ˆ˜ N (1 โ‰ค N โ‰ค 20)์ด ์ฃผ์–ด์ง„๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— ์˜ฎ๊ธด ํšŸ์ˆ˜ K๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ ์ˆ˜ํ–‰ ๊ณผ์ •์„ ์ถœ๋ ฅํ•œ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ K๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ..

2022.02.05 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

Computer science/์•Œ๊ณ ๋ฆฌ์ฆ˜

[๋ฐฑ์ค€, node.js] 2133๋ฒˆ "ํƒ€์ผ ์ฑ„์šฐ๊ธฐ" ๋ฌธ์ œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

๋ฌธ์ œ 3ร—N ํฌ๊ธฐ์˜ ๋ฒฝ์„ 2ร—1, 1ร—2 ํฌ๊ธฐ์˜ ํƒ€์ผ๋กœ ์ฑ„์šฐ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•ด๋ณด์ž. ์˜ˆ์ œ ์ž…๋ ฅ & ์ถœ๋ ฅ ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— N(1 โ‰ค N โ‰ค 30)์ด ์ฃผ์–ด์ง„๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ํžŒํŠธ ์•„๋ž˜ ๊ทธ๋ฆผ์€ 3ร—12 ๋ฒฝ์„ ํƒ€์ผ๋กœ ์ฑ„์šด ์˜ˆ์‹œ์ด๋‹ค. ์†Œ์Šค์ฝ”๋“œ ๊ธฐ์กด์— ํƒ€์ผ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ , ๊ฐ„๋‹จํžˆ ์ƒ๊ฐํ–ˆ๋‹ค๊ฐ€ ๋ฐ”๋กœ ํ‹€๋ ค๋ฒ„๋ฆฐ ๋ฌธ์ œ. ๋ฌธ์ œ์— ํžŒํŠธ๊ฐ€ ์žˆ์—ˆ๋˜ ์ด์œ ๊ฐ€ ์žˆ์—ˆ๋‹ค. DP ์ ํ™”์‹์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด N=1, N=2...๋ฅผ ์ง์ ‘ ๋งŒ๋“œ๋Š” ๊ณผ์ •์—์„œ ํ™€์ˆ˜์˜ ๊ฒฝ์šฐ ํƒ€์ผ์„ ๋งŒ๋“ค ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ™€์ˆ˜ ์ผ€์ด์Šค์˜ ๊ฒฝ์šฐ 0์œผ๋กœ ๋ฆฌํ„ดํ•˜๋ฉด ๋  ๊ฒƒ์ด๊ณ , ์ง์ˆ˜์˜ ๊ฒฝ์šฐ N-2์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜ * 3๋งŒํ•˜๋ฉด ๋๋‚˜๋Š” ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ํžŒํŠธ๋ฅผ ์œ ์‹ฌํžˆ ์‚ดํŽด๋ณด๋ฉด, N=4์˜ ๊ฒฝ์šฐ ์ค‘๊ฐ„์— ๋ผ์–ด์žˆ๋Š” ์˜ˆ์™ธ ์ผ€์ด์Šค๊ฐ€ ์กด์žฌํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊นจ๋‹ซ๊ฒŒ ๋œ๋‹ค. ๊ฐ ์ผ€..

2022.02.05 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

Computer science/์•Œ๊ณ ๋ฆฌ์ฆ˜

[๋ฐฑ์ค€, node.js] 9461๋ฒˆ "ํŒŒ๋„๋ฐ˜ ์ˆ˜์—ด" ๋ฌธ์ œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

๋ฌธ์ œ ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์‚ผ๊ฐํ˜•์ด ๋‚˜์„  ๋ชจ์–‘์œผ๋กœ ๋†“์—ฌ์ ธ ์žˆ๋‹ค. ์ฒซ ์‚ผ๊ฐํ˜•์€ ์ •์‚ผ๊ฐํ˜•์œผ๋กœ ๋ณ€์˜ ๊ธธ์ด๋Š” 1์ด๋‹ค. ๊ทธ ๋‹ค์Œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์œผ๋กœ ์ •์‚ผ๊ฐํ˜•์„ ๊ณ„์† ์ถ”๊ฐ€ํ•œ๋‹ค. ๋‚˜์„ ์—์„œ ๊ฐ€์žฅ ๊ธด ๋ณ€์˜ ๊ธธ์ด๋ฅผ k๋ผ ํ–ˆ์„ ๋•Œ, ๊ทธ ๋ณ€์— ๊ธธ์ด๊ฐ€ k์ธ ์ •์‚ผ๊ฐํ˜•์„ ์ถ”๊ฐ€ํ•œ๋‹ค. ํŒŒ๋„๋ฐ˜ ์ˆ˜์—ด P(N)์€ ๋‚˜์„ ์— ์žˆ๋Š” ์ •์‚ผ๊ฐํ˜•์˜ ๋ณ€์˜ ๊ธธ์ด์ด๋‹ค. P(1)๋ถ€ํ„ฐ P(10)๊นŒ์ง€ ์ฒซ 10๊ฐœ ์ˆซ์ž๋Š” 1, 1, 1, 2, 2, 3, 4, 5, 7, 9์ด๋‹ค. N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, P(N)์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์˜ˆ์ œ ์ž…๋ ฅ & ์ถœ๋ ฅ ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ•œ ์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , N์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค N โ‰ค 100) ์ถœ๋ ฅ ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค P(N)์„ ์ถœ๋ ฅํ•œ๋‹ค. ์†Œ์Šค์ฝ”๋“œ DP๋กœ ๊ฐ„๋‹จ..

2022.02.04 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

Computer science/์•Œ๊ณ ๋ฆฌ์ฆ˜

์ด์ง„ ํƒ์ƒ‰(Binary Search) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋… ์ดํ•ด ๋ฐ ์˜ˆ์ œ feat. Javascript

์ด์ง„ํƒ์ƒ‰(Binary Search)? ์ด์ง„ ํƒ์ƒ‰์ด๋ž€ *์ •๋ ฌ๋œ* ๋ฐฐ์—ด์—์„œ ํŠน์ •ํ•œ ๊ฐ’์„ ์ฐพ์•„๋‚ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ๋ฐฐ์—ด์˜ ์ค‘๊ฐ„ ๊ฐ’๊ณผ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์„ ๋น„๊ตํ•˜๋ฉฐ ์ฐพ์•„๋ƒ…๋‹ˆ๋‹ค. ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์ด X๋ผ๊ณ  ํ•˜๋ฉด, X๊ฐ€ ์ค‘๊ฐ„ ๊ฐ’๋ณด๋‹ค ์ž‘์œผ๋ฉด(x high) return -1; const mid = Math.floor((low + high) / 2); // console.log('search...', low, mid, high) if (arr[mid] === target) return mid; if (arr[mid] > target) { return bSearch(arr, target, low, mid - 1); } else { return bSearch(arr, target, mid + 1, high); } } const ..

2022.02.04 ๊ฒŒ์‹œ๋จ

 ํฌ์ŠคํŒ… ์ธ๋„ค์ผ ์ด๋ฏธ์ง€

Computer science/์•Œ๊ณ ๋ฆฌ์ฆ˜

[๋ฐฑ์ค€, node.js] 2225๋ฒˆ "ํ•ฉ๋ถ„ํ•ด" ๋ฌธ์ œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

๋ฌธ์ œ 0๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ์ •์ˆ˜ K๊ฐœ๋ฅผ ๋”ํ•ด์„œ ๊ทธ ํ•ฉ์ด N์ด ๋˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋ง์…ˆ์˜ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€ ๊ฒฝ์šฐ๋Š” ๋‹ค๋ฅธ ๊ฒฝ์šฐ๋กœ ์„ผ๋‹ค(1+2์™€ 2+1์€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒฝ์šฐ). ๋˜ํ•œ ํ•œ ๊ฐœ์˜ ์ˆ˜๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์“ธ ์ˆ˜๋„ ์žˆ๋‹ค. ์˜ˆ์ œ ์ž…๋ ฅ & ์ถœ๋ ฅ ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ๋‘ ์ •์ˆ˜ N(1 โ‰ค N โ‰ค 200), K(1 โ‰ค K โ‰ค 200)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— ๋‹ต์„ 1,000,000,000์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์†Œ์Šค์ฝ”๋“œ ๋ฌธ์ œ ์ž์ฒด๋Š” ๊ต‰์žฅํžˆ ๋‹จ์ˆœํ•ด์„œ ์‰ฌ์šธ์ค„ ์•Œ์•˜์œผ๋‚˜ ์—ญ์‹œ๋‚˜ DP ๋ฌธ์ œ๋Š” ์ ํ™”์‹ ๊ตฌํ•ด๋‚ด๊ธฐ๊ฐ€ ์ •๋ง ์–ด๋Ÿฌ์šด ๊ฒƒ ๊ฐ™๋‹ค. // ์ ํ™”์‹ DP[K][N] = DP[K-1][0] + DP[K-1][1] + ... + DP[K-1][N] const fs = require('fs'); let [n, k] = ..

2022.02.03 ๊ฒŒ์‹œ๋จ

728x90
๋ฐ˜์‘ํ˜•