๋ฌธ์ ๋ด์ฉ ํ์ด๐๐ปโ๏ธ 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..
FE๋ฅผ ํฅํดโโ
๋ฌธ์ ๋ด์ฉ ํ์ด๐๐ปโ๏ธ 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) : ๋งค ์ ํ์ ์๊ฐ์ ์ต์ ์ด ์ ์ญ์ ์ ๋ํ ์ต์ ์ด์ด์ผ ํ๋ค. ์ดํด๋ฅผ ์ํ ์์ ๋ฐ ๋ฌธ์ ๋ง์..