๋ฌธ์ ๋ด์ฉ ํ์ด๐๐ปโ๏ธ function solution(n) { const result = (n + "") .split("") .sort((a, b) => b - a) .join(""); return parseInt(result); } ์๋ฌต์ ํ๋ณํ์ ํตํด ๋ณํ split์ผ๋ก ๊ฐ์์๋ฅผ ๋๋ ์ฃผ๊ณ sort๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ ํ ๊ฐ ์์๋ฅผ join์ผ๋ก ํฉ์ณ์ฃผ๊ณ ํ์
์ ๋ณํํด ๋ฆฌํดํ๋ค. * ์๋ฌต์ ํ๋ณํ์ ํ๋ฒ ์ฌ์ฉํด ๋ดค๋๋ฐ ๋ช
์์ ์ผ๋ก ์ฌ์ฉํด ์ฃผ๋๊ฒ ๋ ์ข์ ๊ฒ ๊ฐ๋ค. (toString ๋ฑ)
์๊ณ ๋ฆฌ์ฆ & ๋ฌธ์ ํ์ด
๋ฌธ์ ๋ด์ฉ ํ์ด๐๐ปโ๏ธ function solution(n) { return n .toString() .split("") .map((v) => Number(v)) .reverse(); } ์ซ์๋ฅผ ๋ฌธ์์ด๋ก ๋ณ๊ฒฝ. split์ผ๋ก ๊ฐ๊ฐ์ ์์๋ก ์๋ผ ์ฃผ๊ธฐ. map์ผ๋ก ์ํ๋ฅผ ๋๋ฉฐ ํ์
๋๋ฒ๋ก ๋ณ๊ฒฝ ๋ฆฌ๋ฒ์ค ๋ฉ์๋๋ก ๋ฐ๋๋ก ๋๋ ค์ ๋ฐํ!!! ๋ ์ข์ ํ์ด function solution(n) { return n .toString() .split("") .map(Number) .reverse(); } map์ ์ธ์๋ก ์ฝ๋ฐฑํจ์๊ฐ ๊ธฐ๋ณธ์ธ์ค ์์๋๋ฐ ๊ทธ๋ฅ Number๋ง ๋๊ฒจ์ค๋ ๊ฐ๋ฅํ๋ค..(์ถฉ๊ฒฉ)
๋ฌธ์ ๋ด์ฉ ํ์ด๐๐ปโ๏ธ 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 ๋ง์ ๋ฉ์๋๋ฅผ ๋ฐฐ์ด๋งํผ ์ ํํ ์ฌ์ฉ๋ฒ์ด ํท๊ฐ๋ฆฐ๋ค.. ์ฌ์ฉํ ๋ ๋ฌด์จ์ญํ ์ด๊ณ ์ด๊ฑธ ์จ์ผํ๋ค๋๊ฑด ์์ง๋ง ..
๋ฌธ์ ๋ด์ฉ ํ์ด๐๐ปโ๏ธ 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) : ๋งค ์ ํ์ ์๊ฐ์ ์ต์ ์ด ์ ์ญ์ ์ ๋ํ ์ต์ ์ด์ด์ผ ํ๋ค. ์ดํด๋ฅผ ์ํ ์์ ๋ฐ ๋ฌธ์ ๋ง์..