๐ŸŸฃ ์˜ค๋Š˜์˜ ๋ฌธ์ œ ํšŒ๊ณ 

๊น€ํƒœ์šฑยท2022๋…„ 11์›” 12์ผ
0
post-thumbnail

๐Ÿค” ์˜ค๋Š˜์˜ ํ•™์Šต!


์ฒซ ๋ฒˆ์งธ ๋ฌธ์ œ.

๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ •์ˆ˜๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด์ด ์ „๋‹ฌ ๋˜๋ฉฐ, ๋ฐฐ์—ด ์•ˆ์— ์ง์ˆ˜, ํ™€์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ ์žˆ๋Š”์ง€ ํŒ๋ณ„ ํ•ด๋‚ด๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋ฌธ์ œ์˜€๋‹ค.

๊ฐ€์žฅ ๋จผ์ € ์–ด๋–ป๊ฒŒ ์ถœ๋ ฅ ๋ฐฐ์—ด์˜ ์ฒซ๋ฒˆ ์งธ ์ธ๋ฑ์Šค์—๋Š” ์ง์ˆ˜ ๊ฐ’์„ ๋„ฃ๊ณ , ๋‘๋ฒˆ ์งธ ์ธ๋ฑ์Šค์—๋Š” ํ™€์ˆ˜ ๊ฐ’์„ ๋„ฃ์„์ง€๊ฐ€ ๊ณ ๋ฏผ์ด์—ˆ๋‹ค.

 1. ์ง์ˆ˜, ํ™€์ˆ˜๋ฅผ ๋‚˜๋ˆ ์ค„ even, odd์˜ ๋นˆ ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ 
 2. ์ง์ˆ˜๋Š” ์ง์ˆ˜๋Œ€๋กœ even์— push ํ•˜๊ณ , ํ™€์ˆ˜๋Š” ํ™€์ˆ˜๋Œ€๋กœ odd์— push ํ–ˆ๋‹ค.
 3. ๊ทธ๋ ‡๊ฒŒ ์ถœ๋ ฅ์€ even = [2,4], odd[1,3,5]๋กœ ๋‚˜๋‰˜์–ด ๋ฐฐ์—ด์— ๋‹ด๋Š” ๊ฒƒ ๊นŒ์ง„ ์„ฑ๊ณต
 4. concat ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‘˜์„ ํ•ฉ์น˜๋‹ˆ ๋‘ ๊ฐœ์˜ ๋ฐฐ์—ด ๊ทธ๋Œ€๋กœ ํ•ฉ์ณ์ ธ ๋ฐ˜ํ™˜๋˜์—ˆ๊ณ 
 5. ๊ฐ๊ฐ์˜ ๊ธธ์ด๋งŒ ํ•„์š”ํ•จ์„ ์ธ์ง€ํ•˜๊ณ  .length๋ฅผ ๋ถ™์—ฌ result๋ฅผ ์™„์„ฑํ–ˆ๋‹ค.
  • ๋ฌธ์ œ ํ•ด๊ฒฐ ํ›„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ๋งŽ์€ ๊ณต๋ถ€๋ฅผ ํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ๋ณด๊ณ  ๊ฐ€์žฅ ํฌ๊ฒŒ ๊นจ๋‹ฌ์•˜๋˜ ์ ์€ ์•„์ง๊นŒ์ง€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŠน์„ฑ์˜ ์ดํ•ด๋„๊ฐ€ ๋ถ€์กฑํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์•˜๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํŠน์„ฑ ์ƒ ์›์‹œ ํƒ€์ž…๊ณผ ๊ฐ์ฒด ํƒ€์ž…์œผ๋กœ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ๋‚˜๋‰˜๋ฉฐ
์›์‹œ ํƒ€์ž…์œผ๋กœ๋Š” "๋ฌธ์ž(string), ์ˆซ์ž(number), bigint, ๋ถˆ๋ฆฐ(boolean), ์‹ฌ๋ณผ(symbol), null, undefinedํ˜•์œผ๋กœ ์ด ์ผ๊ณฑ๊ฐ€์ง€์ด๋ฉฐ",
"์›์‹œ ํƒ€์ž…์„ ์ œ์™ธ ํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ๊ฐ์ฒด ํƒ€์ž…์œผ๋กœ { key : value } ํ˜•ํƒœ์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ–๊ณ ์žˆ๋‹ค."

๋”ํ•ด, ์›์‹œ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ ๊ฐ’๋„ ๊ฐ์ฒด ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ "์ด๋ฅผ ์›์‹œ๊ฐ’์ด ๋ฉ”์„œ๋“œ๋‚˜ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•˜๋ ค ํ•˜๋ฉด ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์ฃผ๋Š” ํŠน์ˆ˜ํ•œ ๊ฐ์ฒด, '์›์‹œ ๋ž˜ํผ ๊ฐ์ฒด(object wrapper)'๋ฅผ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค. ์ด ๊ฐ์ฒด๋Š” ๊ณง ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค." - ์›์‹œ ๊ฐ’๊ณผ ๊ฐ์ฒด -

์œ„ ๋ฌธ์ œ์—์„œ ํ•ด๊ฒฐํ•œ "๋ฐฐ์—ด" ์—ญ์‹œ ๊ฐ์ฒด์˜ ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ ๋‚ด๊ฐ€ ์ดํ•ดํ•œ ๋ฐฐ์—ด์˜ ํ˜•ํƒœ๋Š” {[index]: value} ํ˜•ํƒœ์˜ ๊ฐ์ฒด ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‚˜ ์ƒ๊ฐํ•œ๋‹ค.

๋‚˜์˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ์˜ค๋ฅ˜๋Š” ๋นˆ ๋ฐฐ์—ด์— ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋ ค ํ–ˆ๋‹ค๋Š” ๊ฒƒ. ๊ธฐ์กด์˜ ๋ฐฐ์—ด์ด ๊ฐ€์ง„ value์— ๊ฐ’์„ ์žฌํ• ๋‹น ํ•  ์ƒ๊ฐ์„ ๋ชป ํ–ˆ๋˜ ๊ฒƒ์ด์—ˆ๋‹ค!

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ํ•ด๊ฒฐ ๋ฒ•์—๋Š” "let answer = [0, 0]"์œผ๋กœ ์ง€์ • ํ•ด๋†“๊ณ  ํ•ด๋‹น key๋ฅผ ๊ฐ€์ง„ ์ธ๋ฑ์Šค๋ฅผ ๋ถˆ๋Ÿฌ์™€ value์— ๊ฐ’์„ ์žฌํ• ๋‹น ํ•˜๊ฑฐ๋‚˜ ์นด์šดํŠธ๋ฅผ ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ๋˜ ๊ฒƒ์ด ์•„๋‹ˆ์—ˆ์„๊นŒ.

์ง€๊ธˆ ๋ฌธ์ œ์—์„œ ๊นจ๋‹ฌ์€ ์ ์€

  • ๋ฐฐ์—ด์€ ๊ฐ์ฒด ํƒ€์ž…์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค. ํ•จ์ˆ˜ ์—ญ์‹œ ๊ฐ์ฒด ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง.
  • ๊ทธ๊ฑฐ์™€ ๋ณ„๊ฐœ๋กœ for ๋ฐ˜๋ณต๋ฌธ์— if ์กฐ๊ฑด๋ฌธ ์‚ฌ์šฉ์— return์ด ์žˆ๊ณ  ์—†๊ณ ์˜ ์ฐจ์ด๊ฐ€ ๊ถ๊ธˆํ–ˆ๋Š”๋ฐ, if ์กฐ๊ฑด์˜ ๊ฒฐ๊ณผ๋กœ return์„ ๋ถ™์ด๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ์กฐ๊ฑด์˜ ์ฐธ์ด ๋˜๋Š” ๋ถ€๋ถ„์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๋”์ด์ƒ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š์•˜๋‹ค!
  • return === break ์™€ ๊ฐ™๋‹ค. ์กฐ๊ฑด์ด ์ฐธ์ด ๋˜๋Š” ์ˆœ๊ฐ„ ๊ฐ’์„ return ํ–ˆ์œผ๋ฉด ์ถฉ์กฑ๋œ ๋‹ค์Œ ์กฐ๊ฑด๋“ค์€ ์‚ฌ๋ผ์ง„๋‹ค.

๋‘ ๋ฒˆ์งธ ๋ฌธ์ œ.

๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ •์ˆ˜๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด์ด ์ „๋‹ฌ ๋˜๋ฉฐ, ๋ฐฐ์—ด์˜ ๋‘ ์›์†Œ ์ค‘์—์„œ ๊ณฑํ•œ ๊ฐ’์˜ ์ตœ๋Œ€ ๊ฐ’์„ return ํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค.

์šฐํ…Œ์ฝ” ํ”„๋ฆฌ์ฝ”์Šค์—์„œ ํ’€์—ˆ๋˜ ๋ฌธ์ œ๊ฐ€ ๊ธฐ์–ต๋‚˜, ๊ธฐ์–ต๋‚˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋Š”๋ฐ
๋ฐ˜๋ณต๋ฌธ ์กฐ๊ฑด ์ ์šฉ ๋‹จ๊ณ„์—์„œ ์›์†Œ ์™ธ์˜ ์ ์šฉ๋˜๋Š” index๊ฐ€ ์ƒ๊ฒจ NaN์ด ํฌํ•จ๋œ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. 
๋ฌธ์ œ๊ฐ€ ๋ฌด์–ผ๊นŒ ๊ณ ๋ฏผํ•˜๋‹ค i์˜ ์ดˆ๊ธฐ ๊ฐ’์„ 1๋กœ ์„ค์ •ํ•œ ๋’ค ๋ฐฐ์—ด์˜ ํฌ์ธํ„ฐ๋ฅผ ์„ค์ •ํ•˜์—ฌ ์•ž, ๋’ค์˜ ์›์†Œ๋ฅผ ๊ณฑํ•ด๋‚ด๋Š” ๋ฐฐ์—ด์„ ๊ตฌํ˜„ ์™„๋ฃŒํ–ˆ๋‹ค.
  • ํ•ด๊ฒฐ ํ›„ ์ฐธ๊ณ ํ•œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด!

์ฐธ๊ณ  ํ›„ ๊นจ๋‹ซ๊ฒŒ ๋œ ์ ์€ ๋ฐฐ์—ด์„ ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” sort() ๋ฉ”์†Œ๋“œ๋ฅผ ์•Œ๊ฒŒ ๋๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ๋Š” ์–ด๋–ป๊ฒŒ ์›๋ฆฌ๊ฐ€ ์ด๋ค„์ง€๋Š” ์ง€ ์ดํ•ด๊ฐ€ ๋ถ€์กฑํ–ˆ๋‹ค.

sort() ๋ฉ”์†Œ๋“œ์˜ ์›๋ฆฌ๋Š” ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์ ์ ˆํ•œ ์œ„์น˜์— ์ •๋ ฌํ•œ ํ›„ ๊ทธ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ์ •๋ ฌ ์ˆœ์„œ๋Š” ๋ฌธ์ž์—ด์˜ ์œ ๋‹ˆ์ฝ”๋“œ ์ฝ”๋“œ ํฌ์ธํŠธ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

sort() ๋ฉ”์†Œ๋“œ ๋‚ด๋ถ€ ์ ์œผ๋กœ ์ ์šฉ๋˜๋Š” ์›๋ฆฌ๋Š” "arr.sort([compareFunction])" ์ด๋Ÿฌํ•˜๋ฉฐ ๊ด„ํ˜ธ ์•ˆ์— ๋น„๊ต ๊ฐ€๋Šฅํ•œ ์ธ์ž ๊ฐ’์ด ์ „๋‹ฌ ๋˜์–ด์•ผ ์ฐจ์ˆœ์œผ๋กœ ์ˆซ์ž๋ฅผ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

MDN์˜ ๊ณต์‹๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด,, -Array.prototype.sort()-

 ์ธ์ž๋กœ ์ „๋‹ฌ๋˜๋Š” a์™€ b๊ฐ€ ๋น„๊ต๋˜๋Š” ๋‘ ์š”์†Œ๋ผ๋ฉด,
 
  * compareFunction(a, b)์ด 0๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ a๋ฅผ b๋ณด๋‹ค ๋‚ฎ์€ ์ƒ‰์ธ์œผ๋กœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, a๊ฐ€ ๋จผ์ €์˜ต๋‹ˆ๋‹ค. a-b < 0  => a,b
  * compareFunction(a, b)์ด 0์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด a์™€ b๋ฅผ ์„œ๋กœ์— ๋Œ€ํ•ด ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋“  ๋‹ค๋ฅธ ์š”์†Œ์— ๋Œ€ํ•ด ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. a-b = 0 => a,b
  * compareFunction(a, b)์ด 0๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ, b๋ฅผ a๋ณด๋‹ค ๋‚ฎ์€ ์ธ๋ฑ์Šค๋กœ ์†ŒํŠธํ•ฉ๋‹ˆ๋‹ค.
  a-b > 0 => b,a

์‰ฝ๊ฒŒ ๋งํ•ด,,

  1. ๋น„๊ตํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์ด 0๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ a๊ฐ€ ๋จผ์ € ์œ„์น˜
  2. ๋น„๊ตํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์ด 0๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ b๊ฐ€ ๋จผ์ € ์œ„์น˜
  3. ๋น„๊ตํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์ด 0์ผ ๊ฒฝ์šฐ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

sort() ๋ฉ”์†Œ๋“œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์ฐพ์•„๋ณธ ์‚ฌ์ดํŠธ ์ค‘ ๊ฐ€์žฅ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์„ค๋ช… ํ•ด์ค€ ์‚ฌ์ดํŠธ๊ฐ€ ์žˆ์–ด์„œ ์ถœ์ฒ˜๋ฅผ ๋‚จ๊น๋‹ˆ๋‹ค! -Array.prototype.sort()๊ฐ€ ๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹-


๐Ÿ˜š ๋ฉ”๋ชจํ•˜๋Š” ์Šต๊ด€์„ ๊ธฐ๋ฅด์ž!

๋ชฉํ‘œ์น˜ ๋งŒํผ์˜ ๋ฌธ์ œ๋ฅผ ํ’€์ง€ ๋ชป ํ•˜๋”๋ผ๋„ ๋ฌธ์ œ๋ฅผ ํ‘ผ ๊ฒƒ์—์„œ ๊นจ๋‹ฌ์€ ๊ฒƒ์ด ์žˆ๊ฑฐ๋‚˜ ๊ณ ๋ฏผํ•œ ๊ฒƒ ์ค‘์—์„œ ์ ์šฉ ํ•ด๋ณด๊ณ  ์•Œ๊ฒŒ๋œ ๊ฒƒ ๋“ฑ ์—ฐ๊ตฌํ•˜์—ฌ ์•Œ๊ฒŒ ๋œ ๊ฒƒ๋“ค์„ ๋ฉ”๋ชจํ•˜๋Š” ์Šต๊ด€์„ ๊ธฐ๋ฅด์ž!

๊ธฐ๋กํ•˜์ง€ ๋ชป ํ•˜๋ฉด ์˜์›ํžˆ ์žŠํ˜€์ง€๊ฒŒ ๋˜๋Š” ๊ฒƒ!

profile
๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•  ์ค„ ์•„๋Š” ๊ฐœ๋ฐœ์ž!

0๊ฐœ์˜ ๋Œ“๊ธ€