๐Ÿ’ป TIL 02 | ํ”„๋กœํ† ํƒ€์ž…์ด๋ž€?

๋ฐ๋ธŒ์ฝ”์Šค 2์ผ์งธ ์ธ๋ฐ,, ๋‚œ์ด๋„๊ฐ€ ํ™• ์ƒ์Šนํ•œ ๋Š๋‚Œ์ด๋ž„๊นŒ..?๐Ÿคฃ ํ•œ๋ฒˆ์”ฉ์€ ๋“ค์–ด๋ณด๊ณ  ๊ณต๋ถ€ํ–ˆ๋˜ ๋‚ด์šฉ์ด์ง€๋งŒ(๊ต์ˆ˜๋‹˜ ๊ฐ์‚ฌํ•ด์—ฌ,,) ์‚ฌ๋žŒ์€ ๋ง๊ฐ์˜ ๋™๋ฌผ๐Ÿ™‰๐Ÿ™‰ ๊พธ์ค€ํ•œ ๋ณต์Šต์ด ๋‹ต์ด๋‹ค!

๐Ÿ“ƒ ์˜ค๋Š˜ ๊ณต๋ถ€ํ•œ ๊ฒƒ

ํ”„๋กœํ† ํƒ€์ž…

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด๋Š” ํ”„๋กœํ† ํƒ€์ž…์ด๋ผ๋Š” ํ”„๋กœํผํ‹ฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์ฒ˜์Œ ๋“ค์–ด๋ณผ ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ ๊ฐœ๋ฐœ์„ ํ•  ๋•Œ ํ•œ๋ฒˆ์ฏค ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์€ [[Prototype]]์„ ๋ณธ ์ ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค! ๊ทธ๋ฆฌ๊ณ  concat ํ•จ์ˆ˜๋ฅผ ๊ตฌ๊ธ€์— ๊ฒ€์ƒ‰ํ•˜๋ฉด mdn์‚ฌ์ดํŠธ์—์„œ Array.prototype.concat()์ด ์ œ๋ชฉ์ธ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค

new ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ Array๋ผ๋Š” ๊ฐ์ฒด๋ฅผ arr๋กœ ์„ ์–ธํ–ˆ๋‹ค!
์šฐ๋ฆฌ๊ฐ€ arr๋กœ concat, fill, find์™€ ๊ฐ™์€ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ด์œ ๊ฐ€ ๋ฐ”๋กœ ์ด ํ”„๋กœํ† ํƒ€์ž… ๋•Œ๋ฌธ์ด๋‹ค.

arr์˜ ๋ถ€๋ชจ ๊ฐ์ฒด(Array)์—์„œ์˜ ํ”„๋กœํ† ํƒ€์ž…์œผ๋กœ ์ •์˜ ๋œ ํ•จ์ˆ˜๋“ค์— ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.โ•ฐ(ยฐโ–ฝยฐ)โ•ฏ

์ •๊ทœ ํ‘œํ˜„์‹

  • ์ •๊ทœํ‘œํ˜„์‹์œผ๋กœ ๊ฐœ๋ฏธ ์ˆ˜์—ด ๊ตฌํ•˜๊ธฐ
//์ง์ ‘ ์ž‘์„ฑํ•œ ์ฝ”๋“œ
const getLookAndSaySequence = (number) => {
  let answer = '1';
  const regExp = /(.)\1*/g;
  for (let i = 1; i < number; i++) {
    answer = answer.match(regExp).reduce((acc, cur) => {
      return acc + `${cur.length}${cur.slice(0, 1)}`;
    }, '');
  }
  return answer;
};

console.log(getLookAndSaySequence(5)); // 111221

์ •๊ทœ ํ‘œํ˜„์‹์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์— ๋ฌด๋ฃŒ ๊ฐ•์˜๊ฐ€ ์žˆ๋‹ค. ๊ฐ•์˜๋ฅผ ๋”ฐ๋ผ๊ฐ€๋‹ค๋ณด๋ฉด ์กฐ๊ธˆ์€ ์ต์ˆ™ํ•ด์ง„๋‹ค!
์˜ค๋ž˜ ๊ฑธ๋ฆฌ์ง€ ์•Š์•„์„œ ์–ด๋ ค์šด ๋ถ„๋“ค์€ ์ง์ ‘ ์‹ค์Šต ํ•ด๋ณด๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค!

์ •๊ทœํ‘œํ˜„์‹ ๊ฐ•์˜
https://programmers.co.kr/learn/courses/11

๐Ÿ˜์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ๋œ ๋‚ด์šฉ

  • Task Queue ๋ง๊ณ  ๋‹ค๋ฅธ ํ๊ฐ€ ๋” ์žˆ๋‹ค๋Š” ์ โ— ใ„ดใ…‡ใ„ฑ
    ์ƒ๊ฐ๋„ ๋ชปํ–ˆ๋˜ ๋‚ด์šฉ์ด๋‹ค. (MicroTask Queue, Animation Frames)
  • IndexedDB๋Š” ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €์— ๋ฐ์ดํ„ฐ๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜!(๋‚˜์ค‘์— ๋‹ค์‹œ ํ•œ๋ฒˆ ๊นŠ๊ฒŒ ํŒŒ๋ด์•ผ๊ฒ ๋‹ค.)

๐Ÿ”ฅ ๋Š๋‚€์ 

์ƒ๊ฐ๋ณด๋‹ค ํ• ๋งŒํ•œ๋ฐ?๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ์–ด์ œ์˜ ๋‚˜๋ฅผ ์›๋งํ•˜๋ฉด์„œ๐Ÿ˜ข..
๊ฐœ๋…์„ ์•Œ๊ณ  ์žˆ๋”๋ผ๋„ ๊นŠ๊ฒŒ ํŒŒ๋‹ค๋ณด๋ฉด์€ ์ƒˆ๋กœ์šด ๋‚ด์šฉ์ด ๋๋„ ์—†์ด ๋‚˜์˜ค๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ํ”„๋กœํ† ํƒ€์ž…๋งŒ 3์‹œ๊ฐ„์„ ๋ณธ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋Ÿผ์—๋„ ์ผ๋ถ€๋ถ„๋งŒ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒƒ์ผ ๊ฒƒ ๊ฐ™์ง€๋งŒ..
ํ”„๋กœํ† ํƒ€์ž… ๋ง๊ณ ๋„ ๋„คํŠธ์›Œํฌ, ์•”ํ˜ธํ™”, ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ์ด๋ฒคํŠธ ๋ฃจํ”„, ๊ฐ์ฒด์ง€ํ–ฅ, ๋ชจ๋“ˆ ๋“ฑ ๋‹ค์‹œ ํ•œ๋ฒˆ ๋” ์ •๋ฆฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

๐Ÿ—ฃ ์˜ค๋Š˜์˜ TMI

๋“œ๋””์–ด ๋งฅ๋ถ ํ”„๋กœ ๋ฐฐ์†ก์ด ์™”๋‹ค!!! เผผ ใค โ—•_โ—• เผฝใค
๋ชจ๋‘ ์†Œ๋ฆฌ์งˆ๋Ÿฌ!!๐Ÿ˜†๐Ÿ˜† ๋“œ๋””์–ด ๋‚˜๋„ ์Šคํƒ€๋ฒ…์Šค์— ๋‹น๋‹นํžˆ ์ž…์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ธ๊ฐ€! ์ผ์ฃผ์ผ๊ฐ„ ์—ด์‹ฌํžˆ ์‚ฌ์šฉํ•ด์„œ ๋ฐ”๋กœ ์ ์‘ํ•ด์•ผ์ง€!! ํ–‰๋ณตํ•˜๋‹ค!๐Ÿ’•
๋ฐ๋ธŒ์ฝ”์Šค์—์„œ ์ฝ”์–ดํƒ€์ž„์— ๋””์Šค์ฝ”๋“œ๊ฐ€ ์ œ๋ฐœ ๋Š๊ธฐ์ง€ ์•Š๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฉฐ๐Ÿ™๐Ÿป..(์ž๊พธ ์Šคํฌ๋Ÿผ ์ค‘ ๋ ‰์ด ๊ฑธ๋ ค ํŒ€์›๋“ค๊ป˜ ์ •๋ง ์ฃ„์†กํ–ˆ๋‹ค..)

Refer

Youtube ํ”„๋กœํ† ํƒ€์ž… ๊ฐ•์˜ : ์ด๊ฑฐ๋ณด๊ณ  prototype ์ดํ•ด ๋ชปํ•˜๋ฉด ๊ฐ•์˜์ ‘์Œ

์˜ค๋Š˜์˜ ๋‚ด์šฉ ์ •๋ฆฌ

๋ฐ๋ธŒ์ฝ”์Šค Day2

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ