CS/Algorithm

    [Algorithm-JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”ํ…Œ Lv2 - ๊ธฐ๋Šฅ๊ฐœ๋ฐœ(array)

    โœ”๏ธ ๋ฌธ์ œ๋งํฌhttps://school.programmers.co.kr/learn/courses/30/lessons/42586?language=javascript ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.krโœ”๏ธ ๋ฌธ์ œ์š”์•ฝ๋ฐฐํฌ๋˜์–ด์•ผ ํ•˜๋Š” ์ž‘์—…๋“ค์ด ์ˆœ์„œ๋Œ€๋กœ ๋‹ด๊ธด ๋ฐฐ์—ด progresses๊ฐ€ ์กด์žฌํ•˜๋ฉฐ ๊ฐ ์ž‘์—…์˜ ๊ฐ’์€ ๋ฐฐํฌ๋œ ์ •๋„๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๋งค์ผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์˜ ์†๋„๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด speeds๋„ ์กด์žฌํ•œ๋‹ค. ๊ฐ ์ž‘์—…๋“ค์€ ๋ฐฐํฌ ์ˆœ์„œ๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋จผ์ € 100% ๋ฐฐํฌ ์ค€๋น„๊ฐ€ ๋๋”๋ผ๋„ ์•ž์„  ์ž‘์—…์ด ๋ฐฐํฌ ์ค€๋น„๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋ฐฐํฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋‚ ์— ..

    [Algorithm-JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”ํ…Œ Lv2 - ์˜์ƒ(hashMap)

    โœ”๏ธ ๋ฌธ์ œ๋งํฌhttps://school.programmers.co.kr/learn/courses/30/lessons/42578?language=javascript ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.krโœ”๏ธ ๋ฌธ์ œ์š”์•ฝ[์˜์ƒ์˜ ์ด๋ฆ„, ์˜์ƒ์˜ ์ข…๋ฅ˜]๋กœ ์ด๋ฃจ์–ด์ง„ 2์ฐจ์› ๋ฐฐ์—ด clothes๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, ์ฝ”๋‹ˆ๋Š” ํ•˜๋ฃจ์— ์ตœ์†Œ ํ•œ๊ฐ€์ง€์˜ ์˜ท์€ ์ž…์–ด์•ผ ํ•œ๋‹ค. ๋‹จ, ๊ฐ™์€ ์ข…๋ฅ˜์˜ ์˜ท์€ ์—ฌ๋Ÿฌ๋ฒŒ ์ž…์„ ์ˆ˜ ์—†๋‹ค. ์ฝ”๋‹ˆ๊ฐ€ ์ž…์„ ์ˆ˜ ์žˆ๋Š” ์˜ท์˜ ์กฐํ•ฉ์˜ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ด๋ผ.๐Ÿ”ด ์ œํ•œ์‚ฌํ•ญclothes์˜ ๊ฐ ํ–‰์€ [์˜์ƒ์˜ ์ด๋ฆ„, ์˜์ƒ์˜ ์ข…๋ฅ˜]๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.์ฝ”๋‹ˆ๊ฐ€ ๊ฐ€์ง„ ์˜์ƒ์˜ ์ˆ˜๋Š” 1๊ฐœ ์ด์ƒ ..

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

    โœ”๏ธ ๋ฌธ์ œ๋งํฌ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 ์ดํ•˜์ด๋‹ค.๊ฐ™์€ ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ์ค‘๋ณตํ•ด์„œ ๋“ค์–ด์žˆ์ง€ ์•Š๋‹ค.๐Ÿšฉ ์ ‘๊ทผ๋ฒ•ํ•ด์‹œ ๋ฌธ์ œ๋ผ๊ณ  ..

    [Algorithm-JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”ํ…Œ Lv1 - ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜(hashMap)

    โœ”๏ธ ๋ฌธ์ œ๋งํฌhttps://school.programmers.co.kr/learn/courses/30/lessons/42576 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.krโœ”๏ธ ๋ฌธ์ œ์š”์•ฝn๋ช…์˜ ์„ ์ˆ˜๊ฐ€ ๋งˆ๋ผํ†ค์„ ๋›ฐ๊ณ  n-1๋ช…์˜ ์„ ์ˆ˜๊ฐ€ ์™„์ฃผ๋ฅผ ํ•œ๋‹ค. ์™„์ฃผ๋ฅผ ํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜์˜ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ๋ผ.์ž…๋ ฅ : ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์ด ๋ฌธ์ž์—ด๋กœ ๋“ค์–ด๊ฐ„ ๋ฐฐ์—ด participant, ์™„์ฃผํ•œ ์„ ์ˆ˜์˜ ์ด๋ฆ„์ด ๋“ค์–ด๊ฐ„ ๋ฐฐ์—ด์ธ completion๐Ÿ”ด ์ œํ•œ์‚ฌํ•ญ1๋ช… ์ด์ƒ 100,000๋ช… ์ดํ•˜์ฐธ๊ฐ€์ž ์ค‘์—๋Š” ๋™๋ช…์ด์ธ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.๐Ÿšฉ ์ ‘๊ทผ๋ฒ•1. ์‹œ๊ฐ„ ์ œํ•œ์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— 10๋งŒ๋ช…์˜ participa..

    [์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ธŒ๋ฃจํŠธ ํฌ์Šค(brute force) - ์™„์ „(์ „์ฒด) ํƒ์ƒ‰

    ์™„์ „ ํƒ์ƒ‰์ด๋ž€ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋ชจ๋‘ ํƒ์ƒ‰ํ•˜๋ฉฐ ์กฐ๊ฑด์— ์ถฉ์กฑ๋˜๋Š” ๊ฒฐ๊ณผ๋งŒ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. โœ”๏ธ ๋ธŒ๋ฃจํŠธ ํฌ์Šค ์žฅ์ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๊ณ„ํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ์‰ฝ๋‹ค.๋ชจ๋“  ๋ฒ”์œ„๋ฅผ ๋‹ค ํƒ์ƒ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด์กฐ๊ฑด ์ •๋‹ต์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.๋ณต์žกํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์—†์ด ๋น ๋ฅด๊ฒŒ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.โœ”๏ธ ๋ธŒ๋ฃจํŠธ ํฌ์Šค ๋‹จ์ ์ธ๋ ฅ๊ฐ’์ด ์ปค์งˆ ๊ฒฝ์šฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์€ ๋งค์šฐ ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๋‹ค.๋ฉ”๋ชจ๋ฆฌ์˜ ํšจ์œจ๋ฉด์—์„œ ๋งค์šฐ ๋น„ํšจ์œจ์ ์ด๋‹ค.โœ”๏ธ ๋ธŒ๋ฃจํŠธ ํฌ์Šค ์ข…๋ฅ˜์„ ํ˜• ๊ตฌ์กฐ : ์ˆœ์ฐจ ํƒ์ƒ‰๋น„์„ ํ˜• ๊ตฌ์กฐ : ๋ฐฑํŠธ๋ž™ํ‚น, DFS, BFSโœ”๏ธ ๋ธŒ๋ฃจํŠธ ํฌ์Šค ์˜ˆ์‹œ ๋ฌธ์ œ์•„๋ž˜์™€ ๊ฐ™์€ ์ˆซ์ž๋ฐฐ์—ด์ด ์กด์žฌํ•  ๋•Œ, ์ˆซ์ž์˜ ๊ฐ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์ด ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž.(๋‹จ, ๊ฐ ์ž๋ฆฟ์ˆ˜์˜ ํ•ฉ์ด ๊ฐ™๋‹ค๋ฉด, ๊ธฐ์กด ์ˆซ์ž๊ฐ€ ๋” ํฐ ๊ฐ’์„ ์ถœ๋ ฅ -> 345, 543์ด๋ผ๋ฉด 543์„ ์ถœ๋ ฅ)le..