FE๋ฅผ ํ–ฅํ•ดโ†—โ†—

๋ฌธ์ œ ๋‚ด์šฉ ํ’€์ด๐Ÿ™Ž๐Ÿป‍โ™‚๏ธ function solution(n) { const squareRoot = Math.sqrt(n); return Number.isInteger(squareRoot) ? (squareRoot + 1) * (squareRoot + 1) : -1; } sqrt ๋ฉ”์„œ๋“œ๋Š” ์ œ๊ณฑ๊ทผ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ฆ‰ ํƒ€๊ฒŸ ๊ฐ’์—๊ฒŒ ๋ฃจํŠธ๋ฅผ ์”Œ์›Œ์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ์†Œ๋ฆฌ. ์ฃผ์–ด์ง„ n์— sqrt๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ์–‘์˜ ์ •์ˆ˜์˜ ์ œ๊ณฑ์ด๋ผ๋ฉด ์ •์ˆ˜๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค. ๊ทธ ์ดํ›„์—๋Š” ์ •์ˆ˜์ธ์ง€ ํŒ๋‹จํ•˜์—ฌ boolean ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” isInteger๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋กœ ์ •์ˆ˜๋ผ๋ฉด ์ œ๊ณฑ์˜ +1 ๊ฐ’์„ ๊ณฑํ•ด์„œ ๋ฆฌํ„ด ์ •์ˆ˜๊ฐ€ ์•„๋‹ ๊ฒฝ์šฐ์—๋Š” ์กฐ๊ฑด๋Œ€๋กœ -1 ์„ ๋ฆฌํ„ดํ•œ๋‹ค ํ”ผ๋“œ๋ฐฑ ํ’€์ด function solution(n) { const squareRoot..
๋ฌธ์ œ ๋‚ด์šฉ ํ’€์ด๐Ÿ™Ž๐Ÿป‍โ™‚๏ธ function solution(n) { let convertedNumber = n .toString() .split("") .map((v) => Number(v)); return convertedString.reduce((acc, cur) => acc + cur); } ์ฃผ์–ด์ง„ ์ˆซ์ž n์„ ๋ฌธ์ž์—ด๋กœ ํƒ€์ž…๋ณ€๊ฒฝ. split์„ ์ด์šฉํ•ด ๊ฐ๊ฐ์˜ ์š”์†Œ๋กœ ๋ฐฐ์—ด๋ฐ˜ํ™˜. map์œผ๋กœ ์ˆœํšŒ๋ฅผ ๋Œ๋ฉฐ ์ˆซ์ž๋กœ ๋ณ€ํ™˜. reduce๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด ์ „๋ถ€ ๋”ํ•ด์ค€๋‹ค. ๋” ์ข‹์€ ํ’€์ด function solution(n) { return n .toString() .split("") .reduce((acc, cur) => acc + Number(cur), 0); } 1 ์—์„œ 2 ๊นŒ์ง€๋Š” ๋™์ผํ•˜๊ฒŒ ์ง„ํ–‰ํ•˜๊ณ  ๊ตณ์ด map๋ฉ”์†Œ๋“œ๋ฅผ..
๋ฌธ์ œ ๋‚ด์šฉ ํ’€์ด๐Ÿ™Ž๐Ÿป‍โ™‚๏ธ function solution(a, b) { const resultDay = new Date(2016, a - 1, b); switch (resultDay.getDay()) { case 0: return "SUN"; case 1: return "MON"; case 2: return "TUE"; case 3: return "WED"; case 4: return "THU"; case 5: return "FRI"; case 6: return "SAT"; } } switch๋ฅผ ์ด์šฉํ•ด ํ’€์–ด๋ดค๋‹ค. ํ•ด๋‹นํ•˜๋Š” ๋‚ ์งœ์˜ Date๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๊ณ  getDay ๋ฉ”์„œ๋“œ ๋ฆฌํ„ด๊ฐ’์— ๋”ฐ๋ผ ๊ฐ’์„ ๋ฆฌํ„ดํ•ด์คฌ๋‹ค. ๋‹ค๋ฅธ๋ถ„ ํ’€์ด function solution(a, b) { const days = ["SUN", "M..
Learned SOLID ์›์น™์— ๋Œ€ํ•ด ์•Œ๊ฒŒ๋˜์—ˆ๊ณ  ๋‹จ์ผ ์ฑ…์ž„ ์›์น™์— ๋Œ€ํ•ด ๋ฐฐ์› ๋‹ค. ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์—์„œ ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋‹ค์‹œ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์—์„œ map์„ ์ด์šฉํ•˜๊ธฐ๋ณด๋‹ค reduce๋ฉ”์„œ๋“œ๋กœ ํ•œ๋ฒˆ์— ๋๋‚ด๋Š” ๋ฒ•์„ ๋ฐฐ์› ๋‹ค. getDay ๋ฉ”์„œ๋“œ ์ด์šฉ์‹œ ๋ฐ˜ํ™˜๊ฐ’์ด ์ˆซ์ž์ธ์ ์„ ์ด์šฉํ•ด ๋ฐฐ์—ด์˜ index๊ฐ’์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ๋ฒ•์„ ๋ฐฐ์› ๋‹ค. Liked reduce๊ฐ€ ์ข€ ์ดํ•ด๊ฐ€ ์•ˆ๊ฐ€์„œ ์‚ฌ์šฉ์„ ํ”ผํ–ˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ์— ๊ฐ์„ ์žก์•˜๋‹ค. ์ ์  ์ข‹์€ ์ฝ”๋“œ๋ฅผ ์งœ๋Š” ๋ฐฉ๋ฒ•๋“ค์„ ๋ฐฐ์›Œ๊ฐ€๊ณ  ์žˆ๋‹ค (๋‹จ์ผ์›์น™, ๋Ž์Šค๋Š” 3์ดํ•˜, ํ•จ์ˆ˜๋Š” 15์ค„ ์ดํ•˜ ๋“ฑ) ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๋ฐฉ๋ฒ•์€ ์•„์ง๊นŒ์ง€๋Š” ๋ณด๋ฉด ๋ฐ”๋กœ ๋– ์˜ค๋ฅธ๋‹ค๐Ÿ‘ ์‹œ๊ฐ„์„ ๋‚˜๋ฆ„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ๋…ธ๋ ฅ์ค‘์ด๋‹ค Lacked ๋งŽ์€ ๋ฉ”์†Œ๋“œ๋ฅผ ๋ฐฐ์šด๋งŒํผ ์ •ํ™•ํ•œ ์‚ฌ์šฉ๋ฒ•์ด ํ—ท๊ฐˆ๋ฆฐ๋‹ค.. ์‚ฌ์šฉํ•  ๋•Œ ๋ฌด์Šจ์—ญํ• ์ด๊ณ  ์ด๊ฑธ ์จ์•ผํ•œ๋‹ค๋Š”๊ฑด ์•Œ์ง€๋งŒ ..
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋™์  ํƒ€์ดํ•‘ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  ๋™์  ํƒ€์ž… ์–ธ์–ด๋ผ ํ•œ๋‹ค. ๋™์  ํƒ€์ž… ์–ธ์–ด๋Š” ๋ณ€์ˆ˜์˜ ํƒ€์ž…์€ ์„ ์–ธ์ด ์•„๋‹Œ ํ• ๋‹น์—์„œ ๊ฒฐ์ •(ํƒ€์ž… ์ถ”๋ก ) ์ด ๋˜๊ณ  ์žฌํ• ๋‹น์— ์˜ํ•ด ๋ณ€์ˆ˜์˜ ํƒ€์ž…์€ ์–ธ์ œ๋“ ์ง€ ๋™์ ์œผ๋กœ ๋ณ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ์ข…๋ฅ˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ด 7๊ฐœ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ œ๊ณตํ•˜๊ณ  ๊ทธ์ค‘ ์›์‹œ ํƒ€์ž…(primitive type)๊ณผ ๊ฐ์ฒด ํƒ€์ž…(object/reference type)์œผ๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค. ์›์‹œ ํƒ€์ž… : number(์ˆซ์ž), string(๋ฌธ์ž์—ด), boolean(์ฐธ, ๊ฑฐ์ง“), undefined(์ž๋ฃŒํ˜• ๋ฏธ์„ค์ •), null(๊ฐ’์ด ์—†์Œ), Symbol(ES6์—์„œ ์ถ”๊ฐ€๋œ ํƒ€์ž…) ๊ฐ์ฒด ํƒ€์ž… : ๊ฐ์ฒด{ }, ๋ฐฐ์—ด[ ], ํ•จ์ˆ˜ ๋“ฑ.. Number (์ˆซ์ž) ๋‹ค๋ฅธ ์–ธ์–ด๋Š” ์ •์ˆ˜์™€ ์‹ค์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•ด int..
์—๋Ÿฌ ๋ฐœ์ƒ ๊ฐœ์ธ ๊ณผ์ œ ์˜คํ”ˆ๋งˆ์ผ“์„ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋ณด๋˜ ์ค‘ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜. ์ƒํ’ˆ ๋””ํ…Œ์ผ ํŽ˜์ด์ง€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์™€ jsxํŒŒ์ผ์— ๋ฟŒ๋ ค์ฃผ๋Š” ๋„์ค‘ ๊ฐ€๊ฒฉ ๋ถ€๋ถ„์— ๋Œ€ํ•œ , ์„ ์ฐ์–ด์ฃผ๋Š” ์ •๊ทœํ‘œํ˜„์‹์„ ๋„ฃ์–ด ๋งŒ๋“ค์–ด ์คฌ๋Š”๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์ „์— ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•˜๋‹ˆ undefined.price ๊ฐ€ ๋˜์–ด ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค. ํ•ด๊ฒฐ getPriceWon ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋„ฃ์–ด์คฌ๋‹ค. jsx ๋ฌธ๋ฒ•์— ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒŒ ๋ณ„๋กœ๋ผ๋ฉด useMemo๋ฅผ ์ด์šฉํ•ด ๋””ํŽœ๋˜์‹œ๋ฅผ productsData๋กœ ์„ค์ •ํ•ด์ฃผ๊ณ  ํ•จ์ˆ˜๋ฅผ ์ง์ ‘ ํ• ๋‹นํ•ด์ค„ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฉ”๋ชจ์ด์ œ์ด์…˜์ด ํ•„์š”ํ•œ ํ•จ์ˆ˜์ธ๊ฐ€๋ฅผ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์•„๋‹ˆ๊ธฐ์— ํ•จ์ˆ˜ ์ž์ฒด๋ฅผ ํ• ๋‹นํ–ˆ๋‹ค. useState๋‚ด์— ์ดˆ๊ธฐ๊ฐ’์„ { price: '' } ์ฒ˜๋Ÿผ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ณต๋ถ€ ํ•„์š”ํ•œ ๋ถ€๋ถ„ useEffect๋Š” ์ปดํฌ๋„ŒํŠธ ๋งˆ์šดํŠธ ํ›„์— ..
๋ฌธ์ œ ๋‚ด์šฉ ํ’€์ด๐Ÿ™Ž๐Ÿป‍โ™‚๏ธ function solution(s, n) { const result = []; for (let string of s) { let convertedString = string === " " ? " " : string.charCodeAt(); const notblank = !(convertedString === " "); if (notblank && convertedString 90) { convertedString -= 26; } } if (notblank && convertedString >= 97) { convertedString += n; if (convertedString > 122) { convertedString -= 26; } } notblank ? result.pu..
Greedy Algorithm ์ด๋ž€? ๋ง ๊ทธ๋Œ€๋กœ ํƒ์š•์Šค๋Ÿฌ์šด, ์š•์‹ฌ ๋งŽ์€ ์ด๋ผ๋Š” ๋œป์ด๋‹ค. ๋งค๋ฒˆ ์„ ํƒ์„ ํ•  ๋•Œ๋งˆ๋‹ค ํ•ญ์ƒ ์ตœ์„ ์˜ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•œ๋‹ค. ๊ทธ๋ฆฌ๋””๋Š” ๋งค ์„ ํƒ(์ง€์—ญ์ )์œผ๋กœ๋Š” ์ตœ์„ ์„ ํƒํ•˜์ง€๋งŒ ๊ทธ ์„ ํƒ๋“ค์ด ์ตœ์ข…(์ „์—ญ์ )์œผ๋กœ ๋ดค์„ ๋•Œ ์ตœ์„ ์ด๋ผ๋Š” ๋ณด์žฅ์€ ์—†๋‹ค. ๋งค์ˆœ๊ฐ„ ์ตœ์ ์„ ๋”ฐ๋ผ๊ฐ€๋ฉด ex) 1-1-1-100 ๋ณด๋‹ค๋Š” 1-1-10-10์ด ์ „์ฒด์ ์œผ๋กœ ๋ดค์„๋•Œ๋Š” ๋” ์งง์€ ๊ธธ ์ด๊ธฐ ๋•Œ๋ฌธ. ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์†์„ฑ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์„ฑ๋ฆฝํ•˜๋ ค๋ฉด ๋‘๊ฐ€์ง€์˜ ์กฐ๊ฑด์ด ํ•„์š”ํ•˜๋‹ค. ํƒ์š• ์„ ํƒ ์†์„ฑ (Greedy Choice Property) : ์ด์ „์˜ ์„ ํƒ์ด ๋‹ค์Œ ์„ ํƒ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค. ์ตœ์  ๋ถ€๋ถ„ ๊ตฌ์กฐ (optimal substructure) : ๋งค ์„ ํƒ์˜ ์ˆœ๊ฐ„์˜ ์ตœ์„ ์ด ์ „์—ญ์ ์— ๋Œ€ํ•œ ์ตœ์„ ์ด์–ด์•ผ ํ•œ๋‹ค. ์ดํ•ด๋ฅผ ์œ„ํ•œ ์˜ˆ์‹œ ๋ฐ ๋ฌธ์ œ ๋งˆ์‹œ..
YunCow
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (7 Page)