๋ชฉ๋ก๐ซถ๐ป console.log(coding) ๐ซถ๐ป (244)
๐ค ์์งlog ๐ค
ํ๋ก๊ทธ๋๋จธ์ค Lv.0 - ๋ฐฐ์ด์ ์ ์ฌ๋ ๐ ๋ฌธ์ ์ค๋ช ๋ ๋ฐฐ์ด์ด ์ผ๋ง๋ ์ ์ฌํ์ง ํ์ธํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ฌธ์์ด ๋ฐฐ์ด s1๊ณผ s2๊ฐ ์ฃผ์ด์ง ๋ ๊ฐ์ ์์์ ๊ฐ์๋ฅผ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ๐ ์ ํ์กฐ๊ฑด 1 ≤ s1, s2์ ๊ธธ์ด ≤ 100 1 ≤ s1, s2์ ์์์ ๊ธธ์ด ≤ 10 s1๊ณผ s2์ ์์๋ ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค s1๊ณผ s2๋ ๊ฐ๊ฐ ์ค๋ณต๋ ์์๋ฅผ ๊ฐ์ง ์์ต๋๋ค. ๐ ํ์ด function solution(s1, s2) { const answer = s1.filter(x => s2.includes(x)) return answer.length; } โ ๋๊ฐ์ ๋ฐฐ์ด์ ๋น๊ตํ๊ณ ๊ทธ์์ ๊ฐ์ ๊ฐ์ด ์๋์ง ํ์ธํ ๊ฐ์๋ก ๋ฐํํด์ผ ํ๋ค๊ณ ์๊ฐํ๋ค. ๊ฒ์์ผ๋ก filter(..
ํ๋ก๊ทธ๋๋จธ์ค Lv.0 - ๋ฌธ์์ด์์ ๋ฌธ์์ด ๐ ๋ฌธ์ ์ค๋ช ๋ฌธ์์ด str1, str2๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. str1 ์์ str2๊ฐ ์๋ค๋ฉด 1์ ์๋ค๋ฉด 2๋ฅผ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ๐ ์ ํ์กฐ๊ฑด 1 ≤ str1์ ๊ธธ์ด ≤ 100 1 ≤ str2์ ๊ธธ์ด ≤ 100 ๋ฌธ์์ด์ ์ํ๋ฒณ ๋๋ฌธ์, ์๋ฌธ์, ์ซ์๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ๐ ํ์ด function solution(str1, str2) { if(str1.includes(str2)){ return 1 } else { return 2 } return answer; } โ ์ค๋ณต๋ ๋ฌธ์์ด์ด ์๋์ง ํ์ธํ๊ณ 1 ๋๋ 2 ๋ฐํํ๊ธฐ set.has() ๋ฅผ ์ฌ์ฉํด์ผํ๋ ์๊ฐํ๋๋ฐ includes() ๊ฐ ๋ฌธ์์ด์ ๋ฌธ์์ด์ด ์๋์ง ์ฌ๋ถ ํ์ธํ๋ ..
ํ๋ก๊ทธ๋๋จธ์ค Lv.0 - ๋ฐฐ์ด ์๋ฅด๊ธฐ ๐ ๋ฌธ์ ์ค๋ช ์ ์ ๋ฐฐ์ด numbers์ ์ ์ num1, num2๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, numbers์ num1๋ฒ ์งธ ์ธ๋ฑ์ค๋ถํฐ num2๋ฒ์งธ ์ธ๋ฑ์ค๊น์ง ์๋ฅธ ์ ์ ๋ฐฐ์ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์. ๐ ์ ํ์กฐ๊ฑด 2 ≤ numbers์ ๊ธธ์ด ≤ 30 0 ≤ numbers์ ์์ ≤ 1,000 0 ≤num1
ํ๋ก๊ทธ๋๋จธ์ค Lv.0 - ํน์ ๋ฌธ์ ์ ๊ฑฐํ๊ธฐ ๐ ๋ฌธ์ ์ค๋ช ๋ฌธ์์ด my_string๊ณผ ๋ฌธ์ letter์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. my_string์์ letter๋ฅผ ์ ๊ฑฐํ ๋ฌธ์์ด์ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ๐ ์ ํ์กฐ๊ฑด 1 ≤ my_string์ ๊ธธ์ด ≤ 100 letter์ ๊ธธ์ด๊ฐ 1์ธ ์๋ฌธ์์ ๋๋ค. my_string๊ณผ letter์ ์ํ๋ฒณ ๋์๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ๋๋ฌธ์์ ์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ๐ ํ์ด function solution(my_string, letter) { const answer = my_string.replaceAll(letter,"") return answer; } โ ๋ฌธ์์ด์์ ํน์ ๊ธ์๋ฅผ ์ ๊ฑฐํ๊ณ ๋๋จธ์ง๋ฅผ ๋ฐํํ๊ธฐ replace() ๋ก ์ ์ฉํด๋ณด์๋๋ฐ..
ํ๋ก๊ทธ๋๋จธ์ค Lv.0 - ์ง์ ํ์ ๊ฐ์ ๐ ๋ฌธ์ ์ค๋ช ์ ์๊ฐ ๋ด๊ธด ๋ฆฌ์คํธ num_list๊ฐ ์ฃผ์ด์ง ๋, num_list์ ์์ ์ค ์ง์์ ํ์์ ๊ฐ์๋ฅผ ๋ด์ ๋ฐฐ์ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์. ๐ ์ ํ์กฐ๊ฑด 1 ≤ num_list์ ๊ธธ์ด ≤ 100 0 ≤ num_list์ ์์ ≤ 1,000 ๐ ํ์ด function solution(num_list) { let odd = 0; let even = 0; for (let i = 0; i < num_list.length; i++){ if(num_list[i] % 2 === 0){ even++ } else { odd++ } } return [even,odd]; } โ ๋ฐฐ์ด์์ ์ง์, ํ์ ๊ฐ์ ๊ตฌ๋ถํ์ฌ ๋ฐฐ์ด๋ก ์ถ๋ ฅํ๊ธฐ ํ์๋ odd, ..
ํ๋ก๊ทธ๋๋จธ์ค Lv.0 - ์ท๊ฐ๊ฒ ํ ์ธ ๋ฐ๊ธฐ ๐ ๋ฌธ์ ์ค๋ช ๋จธ์ฑ์ด๋ค ์ท๊ฐ๊ฒ๋ 10๋ง ์ ์ด์ ์ฌ๋ฉด 5%, 30๋ง ์ ์ด์ ์ฌ๋ฉด 10%, 50๋ง ์ ์ด์ ์ฌ๋ฉด 20%๋ฅผ ํ ์ธํด์ค๋๋ค. ๊ตฌ๋งคํ ์ท์ ๊ฐ๊ฒฉ price๊ฐ ์ฃผ์ด์ง ๋, ์ง๋ถํด์ผ ํ ๊ธ์ก์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์. ๐ ์ ํ์กฐ๊ฑด 10 ≤ price ≤ 1,000,000 price๋ 10์ ๋จ์๋ก(1์ ์๋ฆฌ๊ฐ 0) ์ฃผ์ด์ง๋๋ค. ์์์ ์ดํ๋ฅผ ๋ฒ๋ฆฐ ์ ์๋ฅผ returnํฉ๋๋ค. ๐ ํ์ด function solution(price) { if (price >= 500000) { return Math.floor(price * 0.8); } else if (price >= 300000) { return Math.floor(price * 0..
ํ๋ก๊ทธ๋๋จธ์ค Lv.0 - ๋จธ์ฑ์ด๋ณด๋ค ํค ํฐ ์ฌ๋ ๐ ๋ฌธ์ ์ค๋ช ๋จธ์ฑ์ด๋ ํ๊ต์์ ํค ์์ผ๋ก ์ค์ ์ค ๋ ๋ช ๋ฒ์งธ๋ก ์์ผ ํ๋์ง ๊ถ๊ธํด์ก์ต๋๋ค. ๋จธ์ฑ์ด๋ค ๋ฐ ์น๊ตฌ๋ค์ ํค๊ฐ ๋ด๊ธด ์ ์ ๋ฐฐ์ด array์ ๋จธ์ฑ์ด์ ํค height๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋จธ์ฑ์ด๋ณด๋ค ํค ํฐ ์ฌ๋ ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์. ๐ ์ ํ์กฐ๊ฑด 1 ≤ array์ ๊ธธ์ด ≤ 100 1 ≤ height ≤ 200 1 ≤ array์ ์์ ≤ 200 ๐ ํ์ด function solution(array, height) { const answer = array.filter(i => i > height).length return answer; } โ ๋ฐฐ์ด์์ ๋ณ์๋ณด๋ค ํฐ ์ซ์์ ๊ฐ์ ์ฐพ๊ธฐ array.filter() ..
๐ก ์ฃผ์์ฐฝ์ ์ฃผ์๋ฅผ ์ ๋ ฅํ์ ๋์ ํ๋ฆ์ ์ค๋ช ํด์ฃผ์ธ์. ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ์ ์ฃผ์์ฐฝ์ ์ฃผ์๋ฅผ ์ ๋ ฅ ๋ธ๋ผ์ฐ์ ์์ DNS ์๋ฒ์ IP์ฃผ์๋ฅผ ์์ฒญํ๊ณ , DNS ์๋ฒ์์ IP์ฃผ์๋ฅผ ๋ฐํํ๋ค. ๊ทธํ ๋ธ๋ผ์ฐ์ ์์ ํธ์คํ ์๋ฒ์ IP์ฃผ์๋ฅผ ์์ฒญํ๋ฉด ํธ์คํ ์๋ฒ์์ HTTP๋ฅผ ์์ฒญํ๊ณ ์๋ฒ์์ HTTP๋ฅผ ์๋ต ๋ธ๋ผ์ฐ์ ์์ ๋ ๋๋ง์ด ์ผ์ด๋๋ฉด์ ํ๋ฉด์ด ๋ณด์ธ๋ค. ๐ฅ DNS(Domain Name System) ๋? ์น์ฌ์ดํธ์ IP ์ฃผ์์ ๋๋ฉ์ธ ์ฃผ์๋ฅผ ์ด์ด์ฃผ๋ ํ๊ฒฝ/์์คํ : ์น์ฌ์ดํธ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์๋ ํธ์คํ ์๋ฒ๋ ์ธํฐ๋ท ํ์ ์ด ์ฐ๊ฒฐ๋ ์ปดํจํฐ/์ฅ์น์ธ์ง๋ผ IP ์ฃผ์๊ฐ ํ ๋น๋์ด ์๊ณ ์ด ์ฃผ์๊ฐ ์ค์ ์น์ฌ์ดํธ ์ฃผ์๋ผ ํ ์ ์๋ค. DNS ์๋ฒ๋ ์ด๋ฐ IP ์ฃผ์๋ฅผ ํน์ ๋๋ฉ์ธ ์ฃผ์์ ๊ฐ๋ค๋ ๊ธฐ๋ก์ ์ ์ฅํด๋๊ณ , ์ธํฐ๋ท ์ฌ์ฉ์๋ค์ด..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bzU2AB/btsAaYggPNb/uUCJqdgE64BLCLZp5qTyuK/img.png)
beforeunload ์ด๋ฒคํธ๋ ์ฌ์ฉ์๊ฐ ์ผ๋ฐ์ ์ผ๋ก ํ์ด์ง๋ฅผ ๋ซ๊ฑฐ๋ ์๋ก๊ณ ์นจํ ๋, ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์ ๋, ์ฃผ์ ํ์์ค์ ๋ค๋ฅธ URL์ ์ ๋ ฅํ๊ฑฐ๋ ๋งํฌ๋ฅผ ํด๋ฆญํ ๋ ๋ฐ์ํ๋ฉฐ, ํ์ด์ง๋ฅผ ๋ซ๊ธฐ ์ ์ ์ด๋ ํ ์กฐ์น๋ฅผ ์ทจํ ์ ์๊ฒ ์ ๊ณตํฉ๋๋ค. ์ฃผ๋ก ์ฌ์ฉ์์๊ฒ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฅํ ๊ฒ์ธ์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๊ฑฐ๋, ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ ์ค์ธ ๋ฆฌ์์ค๋ฅผ ์ ๋ฆฌํ๋ ๋ฑ์ ์์ ์ ์ํํ ๋ ํ์ฉ๋ฉ๋๋ค. ๐ React ์์ ์ฌ์ฉํ๊ธฐ useEffect(() => { const handleBeforeUnload = (event) => { event.preventDefault(); event.returnValue = ''; // ๋์ด์ ์ง์๋์ง ์๋ ์์ฑ ์ด๋ผ๊ณ ํ๋ค. ์์ฑํ์ง ์์๋ ๋ฌด๋ฐฉ }; window.addEventListener('b..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cq66bo/btszGTSvI2O/4vVt5PK3VAmpILtIjGMwIk/img.png)
๐ React : ๋ฆฌ์กํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋๋ก์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค๊ธฐ์ํด ์ฌ์ฉํ๋ ์น ํ๋ ์ ์ํฌ ์ด๋ค. ๐๏ธ React์ ์๋ฆฌ, ํน์ง, ์ฅ๋จ์ : ๋ฆฌ์กํธ๋ ๋ฐ์ดํฐ์ ํ๋ฆ์ด ํ๋ฐฉํฅ์ผ๋ก๋ง ํ๋ฅด๋ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ๊ฐ์ง๊ณ ์๋ค. UI๋ฅผ ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ก ์ชผ๊ฐ์ ๋ง๋ ๋ค. ์ ์ฒด ์ฝ๋๋ฅผ ํ์ ํ๊ธฐ ์ฌ์ฐ๋ฉฐ ์ ์ง๋ณด์ ๋ฐ ๊ด๋ฆฌ๊ฐ ์ฉ์ดํ๊ณ , ์ฌ์ฌ์ฉ์ฑ์ด ๋๋ค. ๋ฆฌ์กํธ๋ฅผ ์ด์ฉํ๋ฉด ๋์ ์ธ UI๋ฅผ ์ฝ๊ฒ ๋ง๋ค์ ์๋ค. ๐๏ธ Javascript + XML ์๋ฐ์คํฌ๋ฆฝํธ์ HTML ํ๊ทธ๋ฅผ ๋ผ์น์ ๋ฌธ๋ฒ HTML ํ๊ทธ ์์์ ์ค๊ดํธ {}๋ฅผ ์ฌ์ฉํด์ JS๋ฅผ ์ธ ์ ์๋ค. const apple = "์ฌ๊ณผ" const title = {apple} ๋์ค๋ถ? ๐๏ธ Component ํ๋ฉด์ ์ด๋ฃจ๋ '์์'๋ก ์ฌ๋ฌ ๊ณณ์์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅ..