๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•

js15

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ˆซ์ž์˜ ํ‘œํ˜„ Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ˆซ์ž์˜ ํ‘œํ˜„ Finn์€ ์š”์ฆ˜ ์ˆ˜ํ•™๊ณต๋ถ€์— ๋น ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜ํ•™ ๊ณต๋ถ€๋ฅผ ํ•˜๋˜ Finn์€ ์ž์—ฐ์ˆ˜ n์„ ์—ฐ์†ํ•œ ์ž์—ฐ์ˆ˜๋“ค๋กœ ํ‘œํ˜„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์—ฌ๋Ÿฌ๊ฐœ๋ผ๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด 15๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด 4๊ฐ€์ง€๋กœ ํ‘œํ˜„ ํ•  programmers.co.kr Solution 1. ์ดˆ๊ธฐ ๊ฐ’ ์„ค์ • n์ด ํ™€์ˆ˜๋ผ๋ฉด 2๋ถ€ํ„ฐ ์ง์ˆ˜๋ผ๋ฉด 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด์œ ๋Š” ์ž๊ธฐ ์ž์‹ ์ธ ์ˆซ์ž๋Š” ๋ฌด์กฐ๊ฑด ํฌํ•จ๋˜๊ธฐ ๋•Œ๋ฌธ์— 1์„ ๋”ํ•ด์ฃผ๊ณ , ํ™€์ˆ˜์ธ ๊ฒฝ์šฐ์—” ์ ˆ๋ฐ˜๊ณผ ๊ทธ ์ ˆ๋ฐ˜์˜ +1์„ ๋”ํ–ˆ์„ ๋•Œ๊ฐ€ ๋ฐ˜๋“œ์‹œ ์—ฐ์†์ ์ธ ์ˆซ์ž์ด๊ธฐ ๋•Œ๋ฌธ์— 1์„ ๋”ํ•ด์ค˜ 2๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ฉ์„ ์ €์žฅํ•  sum, ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ €์žฅํ•  min, ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์ €์žฅํ•  max๋ฅผ 1๋ถ€ํ„ฐ ์„ ์–ธํ•ด ์ค๋‹ˆ๋‹ค. var answer = n%2 == 1 ? 2 :.. 2022. 4. 11.
[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ฐ™์€ ์ˆซ์ž๋Š” ์‹ซ์–ด Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ฐ™์€ ์ˆซ์ž๋Š” ์‹ซ์–ด ๋ฐฐ์—ด arr๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋ฐฐ์—ด arr์˜ ๊ฐ ์›์†Œ๋Š” ์ˆซ์ž 0๋ถ€ํ„ฐ 9๊นŒ์ง€๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ, ๋ฐฐ์—ด arr์—์„œ ์—ฐ์†์ ์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ์ˆซ์ž๋Š” ํ•˜๋‚˜๋งŒ ๋‚จ๊ธฐ๊ณ  ์ „๋ถ€ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, ์ œ๊ฑฐ๋œ ํ›„ ๋‚จ์€ programmers.co.kr Solution 1. ์ „์˜ ์ˆซ์ž๊ฐ€ ์–ด๋–ค ๊ฒƒ์ธ์ง€ ์ €์žฅํ•  ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์ค€๋‹ค. let past = "" 2. ์ˆซ์ž๋ฅผ ๋‹ด์„ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ์ค€๋‹ค. let answer = [] 3. ๋ฐฐ์—ด์„ ์ฐจ๋ก€๋กœ ์ˆœํšŒํ•˜๋ฉฐ ๊ฐ™์€ ์ˆซ์ž๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ์ „์˜ ์ˆซ์ž๋ฅผ ์ €์žฅํ•˜๊ณ  answer์— ๋‹ด์•„์ค€๋‹ค. arr.forEach(a => { if (a !== past) { answer.push(a) past = a } }) 4. answer๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. return.. 2022. 4. 11.
[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ตฌ๋ช…๋ณดํŠธ Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ตฌ๋ช…๋ณดํŠธ ๋ฌด์ธ๋„์— ๊ฐ‡ํžŒ ์‚ฌ๋žŒ๋“ค์„ ๊ตฌ๋ช…๋ณดํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌ์ถœํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ช…๋ณดํŠธ๋Š” ์ž‘์•„์„œ ํ•œ ๋ฒˆ์— ์ตœ๋Œ€ 2๋ช…์”ฉ ๋ฐ–์— ํƒˆ ์ˆ˜ ์—†๊ณ , ๋ฌด๊ฒŒ ์ œํ•œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ๋žŒ๋“ค์˜ ๋ชธ๋ฌด๊ฒŒ๊ฐ€ [70kg, 50kg, 80kg, 5 programmers.co.kr Solution 1. ์‚ฌ๋žŒ์˜ ๋ฌด๊ฒŒ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. let sorted = people.sort((a,b) => a-b) 2. ์ •๋ ฌํ•œ ๋ฌด๊ฒŒ์˜ ์‹œ์ž‘๊ณผ ๋์„ ์ง€์ •ํ•ด์ค€๋‹ค. let start = 0 let end = people.length - 1 3. ๊ฐ€์žฅ ๋ฌด๊ฑฐ์šด ์‚ฌ๋žŒ๋ถ€ํ„ฐ ๊ฐ€์žฅ ๊ฐ€๋ฒผ์šด ์‚ฌ๋žŒ์„ ์ฐจ๋ก€๋กœ ์—ฐ๊ฒฐ์ง“๋Š”๋‹ค. ๋งŒ์•ฝ ๊ฐ€์žฅ ๋ฌด๊ฑฐ์šด ์‚ฌ๋žŒ๊ณผ ๊ฐ€์žฅ ๊ฐ€๋ฒผ์šด ์‚ฌ๋žŒ์„ ์—ฐ๊ฒฐ์ง€์—ˆ๋Š”๋ฐ limit๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด ๊ฐ™์ด ๋ณดํŠธ๋ฅผ ํƒˆ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์ด.. 2022. 4. 11.
[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ฒŒ์ž„ ๋งต ์ตœ๋‹จ๊ฑฐ๋ฆฌ Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ฒŒ์ž„ ๋งต ์ตœ๋‹จ๊ฑฐ๋ฆฌ [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr Solution ํ•ด๋‹น ๋ฌธ์ œ๋Š” BFS๋กœ ํ’€์–ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. 1. ์ดˆ๊ธฐ ํ–‰๊ณผ ์—ด์˜ ๊ฐฏ์ˆ˜๋ฅผ ์ €์žฅํ•œ๋‹ค. const N = maps.length const M = maps[0].length 2. ์ƒํ•˜์ขŒ์šฐ๋กœ ์›€์ง์ผ x์™€ y์˜ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค. const direction = [[0, -1], [0, 1], [-1, 0], [1, 0]] 3. ๋งต์˜ ๊ฐ€์žฅ์ž๋ฆฌ๋ฅผ ํ•œ ๊ฒน ๊ฐ์‹ธ์ค€๋‹ค. ๋งต์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๊ฒŒ ๋˜๋ฉด.. 2022. 4. 11.
[TS] ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ(TypeScript)๋ž€? (feat. ์จ์•ผํ•˜๋Š” ์ด์œ ) ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ(TypeScript)๋ž€? ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์Šˆํผ์…‹์ธ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ๊ฐœ๋ฐœ, ์œ ์ง€ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์—„๊ฒฉํ•œ ๋ฌธ๋ฒ•์„ ์ง€์›ํ•œ๋‹ค. C#์˜ ๋ฆฌ๋“œ ์•„ํ‚คํ…ํŠธ์ด์ž ๋ธํŒŒ์ด, ํ„ฐ๋ณด ํŒŒ์Šค์นผ์˜ ์ฐฝ์‹œ์ž์ธ Anders Hejlsberg๊ฐ€ ๊ฐœ๋ฐœ์— ์ฐธ์—ฌํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ์™€ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ๋ฅผ ์œ„ํ•œ ๊ฐœ๋ฐœ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ปค๋‹ค๋ž€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๊ฒŒ ์„ค๊ณ„๋œ ์–ธ์–ด์ด๋‹ค.์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์Šˆํผ์…‹์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์ด ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ๋„ ๋™์ž‘ํ•œ๋‹ค. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์—์„œ ์ž์‹ ์ด ์›ํ•˜๋Š” ํƒ€์ž…์„ ์ •์˜ํ•˜๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ปดํŒŒ์ผ๋˜์–ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ๋ชจ๋“  ์šด์˜ ์ฒด์ œ, ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €, ๋ชจ๋“  ํ˜ธ์ŠคํŠธ์—.. 2022. 3. 8.
[JS] ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฒ• ์•Œ์•„๋ณด๊ธฐ(Callback,Promise,Async & Await) ์•ˆ๋…•ํ•˜์„ธ์š” Foma๐Ÿ’ป ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜๋„ ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ๋ฐฐ์šด Callback ํ•จ์ˆ˜์™€ Promise์— ๋Œ€ํ•ด์„œ ์ œ๊ฐ€ ์ดํ•ดํ•œ ๋ฐฉ์‹๋Œ€๋กœ ์ •๋ฆฌํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Callback Callback ํ•จ์ˆ˜๋Š” ์‹คํ–‰ํ•˜๋Š” ์ฆ‰์‹œ ์™„๋ฃŒ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํŠน์ • ์ž‘์—…์„ ์‹คํ–‰ํ•˜๊ณ  ๋งˆ์นœ ๋’ค์— ์™„๋ฃŒ๋œ๋‹ค. ์ฆ‰, ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋งŒ์•ฝ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ์ž‘์—…์ด ์žˆ๋‹ค๋ฉด ์ž‘์—…์ด ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๊ฑฐ๋‚˜ ์ค‘๊ฐ„์—์„œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ์— ์ž‘์—…์ด ์™„๋ฃŒ๋œ๋‹ค. ์ฝœ๋ฐฑ ํ•จ์ˆ˜๊ฐ€ ์™„๋ฃŒ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์—ˆ๊ฑฐ๋‚˜, ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ๋ฟ์ด๋‹ค. ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ์‹์€ ์›ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’๊ณผ ํ•จ๊ป˜ ์ž‘์—…์„ ์‹คํ–‰ํ•  ํ•จ์ˆ˜๋ฅผ ๋ฐ˜๋“œ์‹œ ๊ฐ™์ด ๋„ฃ์–ด์ค€๋‹ค. function loadScript(src,callback) { let s.. 2022. 2. 15.
[JS] Static,Protected,Private์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ ์•ˆ๋…•ํ•˜์„ธ์š” Foma๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜๋„ ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ฐฐ์šด Static,Protected,Private ์— ๋Œ€ํ•ด ์ œ๊ฐ€ ์ดํ•ดํ•œ ๊ฒƒ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ•ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Static Static์€ ์ •์ ์ด๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด, ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋œป์ด๋‹ค. ์ด๊ฒƒ์„ ์ด์šฉํ•˜์—ฌ ์ •์  ๋ฉ”์„œ๋“œ, ํ”„๋กœํผํ‹ฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด ํด๋ž˜์Šค์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ถ€๋ถ„์ด๋‚˜ ๊ธฐ๋Šฅ์„ ๋ฏธ๋ฆฌ ์ •์˜ํ•ด ๋†“๋Š” ๊ฒƒ์ด๋‹ค. Static Property class Person { //๋ชจ๋“  ์‚ฌ๋žŒ์ด ๋™์ผํ•˜๊ฒŒ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ’ static planet = "์ง€๊ตฌ" } //ํด๋ž˜์Šค ์ž์ฒด์—์„œ ๋ฐ”๋กœ ์ฝ๊ธฐ ๊ฐ€๋Šฅ console.log(Person.planet) //์ง€๊ตฌ Static Method class User { co.. 2022. 2. 15.
[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 124 ๋‚˜๋ผ์˜ ์ˆซ์ž Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - 124 ๋‚˜๋ผ์˜ ์ˆซ์ž programmers.co.kr Solution 1. 3์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ answer๋ฐฐ์—ด์— ๋„ฃ๋Š”๋‹ค. 3์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ answer ๋ฐฐ์—ด์— ๋„ฃ๋˜, ๋‚˜๋จธ์ง€๊ฐ€ 0์ด๋ผ๋ฉด 3๋ฒˆ์งธ ๊ฐ’์ด๋ฏ€๋กœ 4๋กœ ๋Œ€์ฒดํ•ด์„œ ๋„ฃ์–ด์ค€๋‹ค. 2. ์ˆซ์ž๊ฐ€ 0์ด ๋  ๋•Œ๊นŒ์ง€ 3์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค. 3์œผ๋กœ ๋‚˜๋ˆ ๊ฐ€๋ฉด์„œ ํ˜„์žฌ ์ˆซ์ž๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š”๋ฐ, ์ˆซ์ž๊ฐ€ 1,2,4 ์ด๋ ‡๊ฒŒ 3๊ฐœ๊นŒ์ง€ ํ—ˆ์šฉ๋˜๊ธฐ ๋–„๋ฌธ์— 0์œผ๋กœ ๋‚˜๋ˆ ์ง„ ๊ฒƒ์€ 3๋ฒˆ์งธ๋ผ๋Š” ์˜๋ฏธ์—ฌ์„œ ๋‹ค์Œ ์ˆซ์ž๋กœ ๋„˜์–ด๊ฐ€๋ฉด ์•ˆ๋˜๋ฏ€๋กœ ๋ชซ์— -1์„ ํ•ด์ค€๋‹ค. ๊ทธ๊ฒŒ ์•„๋‹ˆ๋ผ๋ฉด 3์œผ๋กœ ๋‚˜๋ˆ ์ค€ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค. 3. ๋ฐฐ์—ด์— ์žˆ๋Š” ์ˆซ์ž๋ฅผ ๋’ค์ง‘๊ณ  ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝํ•ด ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋ฐฐ์—ด์— ์Œ“์ธ ์ˆซ์ž๋Š” ๊ฑฐ๊พธ๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ด๋ฏ€๋กœ revese() ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด ๋’ค์ง‘์–ด ์ฃผ๊ณ , ์ •๋‹ต์„ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜.. 2022. 2. 14.
[JS] ํด๋ž˜์Šค(Class) ๊ธฐ๋ณธ ๋ฌธ๋ฒ•๊ณผ ์ƒ์† ์•ˆ๋…•ํ•˜์„ธ์š” Foma๐Ÿ’ป ์ž…๋‹ˆ๋‹ค! ์ด๋ฒˆ ๊ธ€๋„ ์—ญ์‹œ ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ฐฐ์šด 'ํด๋ž˜์Šค'๋ฅผ ์ œ๊ฐ€ ์ดํ•ดํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ณต์Šตํ•˜๋Š” ์ฐจ์›์—์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ ํด๋ž˜์Šค๋ž€? ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํŠน์ • ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋ณ€์ˆ˜์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ์ •์˜ํ•˜๋Š” ์ผ์ข…์˜ ํ‹€๋กœ, ๊ฐ์ฒด๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•œ ์ƒํƒœ(๋ฉค๋ฒ„ ๋ณ€์ˆ˜)์™€ ๋ฉ”์„œ๋“œ(ํ•จ์ˆ˜)๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. - ์œ„ํ‚ค ๋ฐฑ๊ณผ - ์ฆ‰, ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์‰ฝ๊ฒŒ ๋ฏธ๋ฆฌ ํ‹€์„ ๋งŒ๋“ค์–ด ๋†“๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํด๋ž˜์Šค ์ƒ์„ฑํ•˜๊ธฐ ์•ž์— ํด๋ž˜์Šค๋ฅผ ๋ถ™์—ฌ์ค€ ๋’ค constructor(์ƒ์„ฑ์ž)๋ฅผ ์ด์šฉํ•ด์„œ ์ดˆ๊ธฐํ™” ํ•ด์ค€๋‹ค. ๋ฉ”์„œ๋“œ๋‚˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฒ•์€ ์ผ๋ฐ˜ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ์™€ ๋™์ผํ•˜๋‹ค. class Player { constructor(name) { this.height = 180 this.n.. 2022. 2. 12.
[JS] ํ”„๋กœํ† ํƒ€์ž…(Prototype) ๋‹ค๋ค„๋ณด๊ธฐ ์•ˆ๋…•ํ•˜์„ธ์š” Foma ๐Ÿ’ป ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜๋„ ์—ญ์‹œ ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ๋ฐฐ์šด ํ”„๋กœํ† ํƒ€์ž…์„ ๋ณต์Šตํ•˜๋Š” ์ฐจ์›์—์„œ ๋‹ค์‹œ ํ•œ๋ฒˆ ์ •๋ฆฌํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Prototype์ด๋ž€? ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ชจ๋“  ๊ฐ์ฒด๋Š” ์ˆจ๊น€ ํ”„๋กœํผํ‹ฐ๋กœ Prototype์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด๊ฒƒ์€ null์ด๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๊ฒƒ์„ ํ†ตํ•ด์„œ ํ•ด๋‹น ๊ฐ์ฒด์˜ ๊ธฐ๋Šฅ(๋ฉ”์„œ๋“œ)์„ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ฐธ์กฐํ•œ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ํ˜„์žฌ ๊ฐ์ฒด์˜ 'ํ”„๋กœํ† ํƒ€์ž…'์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. Prototype ์„ค์ •ํ•˜๊ธฐ 1. __proto__ ์šด๋™์„ ์ˆ˜๋ฅผ ์ง€์นญํ•˜๋Š” 'player'๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  let player = { firstName:"Young", lastName:"An", get fullName() { return this.firstName .. 2022. 2. 12.
[JS] ํ”„๋กœํผํ‹ฐ ์˜ต์…˜(ํ”Œ๋ž˜๊ทธ) ๋‹ค๋ฃจ๊ธฐ(Property Flag) ์•ˆ๋…•ํ•˜์„ธ์š” Foma๐Ÿ’ป ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ”„๋กœํผํ‹ฐ ํ”Œ๋ž˜๊ทธ์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‚ฌ์ดํŠธ์—์„œ ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ์„ ๋ณต์Šตํ•˜๋Š” ์ฐจ์›์—์„œ ์ œ๊ฐ€ ์ดํ•ดํ•œ ๋ฐฉ์‹์œผ๋กœ ์ ์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค! ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ Property Flag๋ž€? ํ”„๋กœํผํ‹ฐ๋Š” ๊ฐ’ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ”Œ๋ž˜๊ทธ๋ผ ๋ถˆ๋ฆฌ๋Š” ํŠน๋ณ„ํ•œ ์†์„ฑ 3๊ฐ€์ง€๋ฅผ ๊ฐ€์ง„๋‹ค. 1. writable ํ•ด๋‹น ํ”„๋กœํผํ‹ฐ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์„ค์ •ํ•˜๋Š” ํ”Œ๋ž˜๊ทธ 2. enumrable ํ•ด๋‹น ํ”„๋กœํผํ‹ฐ๋ฅผ ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ์„ค์ •ํ•˜๋Š” ํ”Œ๋ž˜๊ทธ 3. configurable ํ•ด๋‹น ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ญ์ œ, ํ”Œ๋ž˜๊ทธ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ์„ค์ •ํ•˜๋Š” ํ”Œ๋ž˜๊ทธ Property Flag ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ• Object.getOwnPropertyDescriptor(๊ฐ์ฒด,ํ”„๋กœํผํ‹ฐ๋ช…)์œผ๋กœ ํ™•์ธํ•˜๊ณ , ์ดˆ๊ธฐ์—” ๋ชจ๋‘ true๋กœ ์„ค์ •๋˜์–ด ์žˆ.. 2022. 2. 12.
[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํฐ์ผ“๋ชฌ Problem ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํฐ์ผ“๋ชฌ ๋‹น์‹ ์€ ํฐ์ผ“๋ชฌ์„ ์žก๊ธฐ ์œ„ํ•œ ์˜ค๋žœ ์—ฌํ–‰ ๋์—, ํ™ ๋ฐ•์‚ฌ๋‹˜์˜ ์—ฐ๊ตฌ์‹ค์— ๋„์ฐฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ™ ๋ฐ•์‚ฌ๋‹˜์€ ๋‹น์‹ ์—๊ฒŒ ์ž์‹ ์˜ ์—ฐ๊ตฌ์‹ค์— ์žˆ๋Š” ์ด N ๋งˆ๋ฆฌ์˜ ํฐ์ผ“๋ชฌ ์ค‘์—์„œ N/2๋งˆ๋ฆฌ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋„ ์ข‹๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. programmers.co.kr Solution 1. nums์˜ ๊ธธ์ด์˜ ๋ฐ˜์„ ๊ตฌํ•œ๋‹ค. let half = nums.length/2 2. Set์— nums์— ์žˆ๋Š” ๋ฒˆํ˜ธ๋ฅผ ๋„ฃ๋Š”๋‹ค. let set = new Set() for (let i = 0; i < nums.length; i++) { set.add(nums[i]) } 3. Set์˜ ์‚ฌ์ด์ฆˆ์™€ nums์˜ ๊ธธ์ด์˜ ๋ฐ˜๊ณผ ๋น„๊ตํ•ด ๋” ์ž‘์€ ๊ฒƒ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. return Math.min(set.size,half) Source Code fun.. 2022. 2. 6.
728x90
๋ฐ˜์‘ํ˜•