-
๐ซง ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ
[ํ๋ก๊ทธ๋๋จธ์ค] ํน๋ณํ ์ด์ฐจ์ ๋ฐฐ์ด1
[๋ฌธ์ ]์ ์ย n์ดย ๋งค๊ฐ๋ณ์๋กย ์ฃผ์ด์งย ๋,ย ๋ค์๊ณผย ๊ฐ์ย nย รย nย ํฌ๊ธฐ์ย ์ด์ฐจ์ย ๋ฐฐ์ดย arr๋ฅผย returnย ํ๋ย solutionย ํจ์๋ฅผย ์์ฑํดย ์ฃผ์ธ์. arr[i][j]ย (0ย โคย i,ย jย ย ย [๋ด ์ฝ๋]ํํ ๋ค 0์ด ๋ค์ด๊ฐ ๋ฐฐ์ด ๋ง๋ค๊ณ ย 0,0 / 1,1 / 2,2 ์ด๋ฐ ์ ๋คํํ
๋ง 1์ ๋ฃ์ด์ฃผ๋ฉด ๋๊ฒ ์ง?ํด์ ์๋์ฒ๋ผ ํ๋๋ฐย function solution(n) { let arr = Array(n).fill(Array(n).fill(0)); console.log(arr) for(i=0; iย ์ฅ.. ์ ๋ค ์ฑ์์ง๋๊ฑฐ์ง...?๋ญ์ง..!? ์ธ์์ด ๋ ์ต๊นํ๋ค!!ํ๊ณ ์ฐพ์๋ณด๋ย fill ๋ฉ์๋์ ๋ํด ์์ธํ ์์ง ๋ชปํ ๊ฒ ์์ธ์ด์๋ค.https://aeunhi99.tistory.com/257ย [Js] ..
-
๐ซง ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ๊น์ด 1 ์ฐพ๊ธฐ - IndexOf(์ฐพ์ element, ์์ํ index)
indexOf ๋ฉ์๋์ ๋ํด ๊ธฐ์ตํ๊ณ ์ถ์ด์ ๊ธฐ๋ก!https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOfย Array.prototype.indexOf() - JavaScript | MDNArray ์ธ์คํด์ค์ indexOf() ๋ฉ์๋๋ ๋ฐฐ์ด์์ ์ฃผ์ด์ง ์์๋ฅผ ์ฐพ์ ์ ์๋ ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๊ณ , ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ -1์ ๋ฐํํฉ๋๋ค.developer.mozilla.org๋งค๊ฐ๋ณ์searchElement๋ฐฐ์ด์์ ์์น๋ฅผ ์ฐพ์ ์์์
๋๋ค.fromIndexย Optional๊ฒ์์ ์์ํ 0 ๊ธฐ๋ฐ ์ธ๋ฑ์ค๋ก,ย ์ ์๋ก ๋ณํ๋ฉ๋๋ค.์์ ์ธ๋ฑ์ค๋ ๋ฐฐ์ด์ ๋๋ถํฐ ๊ฑฐ๊พธ๋ก ์
๋๋ค. ์ฆ,ย fromIndex ย fromInd..
-
๐ผ๏ธ
[7] ๊ธฐ์ ์คํ์ ๋ฐ๊พธ๊ธฐ ์์ ์ ํด์ผ ํ ๊ฒ๋ค
ํต์ฌ์ด ๋๋ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ ๋ฐ ์ฑ๊ณตํ์ผ๋, ์ด์ ์๋ธ ๊ธฐ๋ฅ์ธ ์๋ํ๊ธฐ ํ์ด์ง๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค.๋ฐ๋๋ผJS๋ก ๋ง๋ค๋ฉด ํ์์๋ ๋ ๋๋ง์ด ์๊ธฐ๊ณ , ๋ ๋๋ง๋ ๋ ๊น๋ฐ์์ด ์๊ธฐ๊ธฐ ๋๋ฌธ์,๊ทธ๋ฆฌ๊ณ ์ง๊ธ๋ณด๋ค ๋ ๊ธธ์ด์ง ์ฝ๋๊ฐ ์์๋์ด ๋ฆฌ์กํธ๋ก ์คํ์ ๋ฐ๊พธ๋ ค๊ณ ์๊ฐํ๊ณ ๋ ์์๋ค.ย ย ์ํ๋ ๊ธฐ๋ฅย 1. CRUD ๊ฐ ๊ฐ๋ฅํ ์๋ํ๊ธฐ ํ์ด์ง๋ฅผ ๋ง๋ค๊ณ ์ถ์๊ธฐ์ (์ธ์คํ์ฒ๋ผ ๊ฐ์ ๋ง๋ ์ด๋ฏธ์ง๋ฅผ ๊ณต์ ํ ์ ์๋๋ก)2. ํ๋กํ ๊ทธ๋ฆผ 1์ฐจ ์์ฑ ํ -> ํ์ด์ง ์ด๋ํด์ 2์ฐจ ๊ฐ๊ณต (๊ทธ๋ฆฌ๊ธฐ, ๊ธ์จ ์ฐ๊ธฐ) ๊ฐ ๊ฐ๋ฅํ๊ฒ ํ๊ณ ์ถ์์ด๋ ๊ฒ ๋๊ฐ์ง ๊ธฐ๋ฅ์ ์ํ๊ธฐ์ ์๋ฒ๊ฐ ํ์ํ๋ค.ย ย ์ฃผ๋ณ ๊ฐ๋ฐ์ ๋ถ๋ค๊ป ์ฌ์ญค๋ดค๋๋ฐ ์ง๊ธ ํ ์ ์๋ ๊ฑด1. React + express2. Next JS ์ฌ์ฉํ๊ธฐย ์ด๋ ๊ฒ ๋๊ฐ์ง์๋๋ฐ ์ด ๋๊ฐ์ง ์ค์ ์ด๋ค ์คํ์ผ๋ก ํ ..
-
๐ผ๏ธ
[6] ์บ๋ฆญํฐ๋ง ๋ฐ๊พธ๊ธฐ ์ฑ๊ณต + ์์ดํ
๋ณ๊ฒฝ ์ ๊ทธ๋ฆผ๋ค ์์๋๋ก ๋ฐฐ์นํ๊ธฐ + ๋ฐฐ๊ฒฝ ์ปฌ๋ฌ ์ ์งํ๊ธฐ
์บ๋ฆญํฐ๋ฅผ ๋ฐ๊พธ๋ฉด ๋ชจ๋ ๊ฒ ์ด๊ธฐํ ๋๊ณ ย ๋ชจ๋ ์์๋ฅผ ๋ค์ ์ ํํด์ผ ํ๋ ์ค๋ฅ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํดย ๋ช ๊ฐ์ง์ ํด๊ฒฐ์ฑ
์ ์๊ฐํด๋ดค์๋ค.ย https://mayongee.tistory.com/626ย [5] Canvas Api ๋ ํ๊ฒน์ด์ผ - ์ด๋ฏธ์ง ๊ต์ฒด ๋ฒํผ ์์ ํ๊ธฐโ๏ธ๋ฌธ์ ์ : ์บ๋ฆญํฐ ๋ฒํผ ํด๋ฆญ ์ ๋ชจ๋ ์์ ์ด๊ธฐํย ์ด์ ์ ๋ง๋ ๋ฒํผ์ด ์๋ํ๋ ๋ชจ์ต์ ๋ณด๋ฉด ๊ฐ์ฅ ํฐ ๋ฌธ์ ์ ์ด ์์๋๋ฐ,ย ๋ฐ๋ก ์บ๋ฒ์ค ๋ด์ ์ด๋ฏธ์ง๊ฐ ์๋ ๊ฒฝ์ฐ ์ทจ์ ๋ฒํผ (์์ ๊ธฐ ๋ฒํผ)์mayongee.tistory.comย ย 2. ๋ฒํผ์ ํด๋ฆญํด์ canvas ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ๋ฐฐ๊ฒฝ ์๊ณผ ๋ณ๊ฐ๋ก ์ด๋ฏธ์ง url ์ ๋ณ์๋ก ๊ฐ์ง๊ณ ์๊ธฐย ์ด์ ๋จ๊ณ์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ง๊ณ ์๋ค๊ฐ (๋ฐฐ๊ฒฝ์ ํฌ๋ช
์ผ๋ก)=> ๋ฐฐ๊ฒฝ์ด ๋ณ๊ฒฝ ๋ ๋ -> ๋ฐฐ๊ฒฝ ๊น๊ณ ๋ค์ ๋ก๋=> ๋ค๋ฅธ ๋ฒํผ ๋๋ฅผ ..
-
๐ผ๏ธ
[5] Canvas Api ๋ ํ๊ฒน์ด์ผ - ์ด๋ฏธ์ง ๊ต์ฒด ๋ฒํผ ์์ ํ๊ธฐ
โ๏ธ๋ฌธ์ ์ : ์บ๋ฆญํฐ ๋ฒํผ ํด๋ฆญ ์ ๋ชจ๋ ์์ ์ด๊ธฐํย ์ด์ ์ ๋ง๋ ๋ฒํผ์ด ์๋ํ๋ ๋ชจ์ต์ ๋ณด๋ฉด ๊ฐ์ฅ ํฐ ๋ฌธ์ ์ ์ด ์์๋๋ฐ,ย ๋ฐ๋ก ์บ๋ฒ์ค ๋ด์ ์ด๋ฏธ์ง๊ฐ ์๋ ๊ฒฝ์ฐ ์ทจ์ ๋ฒํผ (์์ ๊ธฐ ๋ฒํผ)์ ๋๋ฅด๋ฉดํด๋น ์์ ๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ์์๊ฐ ์ง์์ง๋ ์ ์ด์๋ค.ย ย ๊ฐ๋ น ์บ๋ฆญํฐ๋ฅผ ํด๋ฆญ & ๋
ธํธ๋ถ ํด๋ฆญ ํด์ย ๋
ธํธ๋ถ์ด ์๋ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ ํ, ์ฑ
์์ ๋ณ๊ฒฝํ๊ณ ์ถ์ด ์ฑ
์ ๋ฒํผ์ ๋๋ฅด๋ฉดํฐ์์ผ๋ก ๋ชจ๋ ์์๊ฐ ์ฌ๋ผ์ง๊ฒ ๋๋ค.์ฆ, ์ฒ์๋ถํฐ ์๋ก ํ๋กํ์ ๋ง๋ค์ด์ผ ํ๋ค.ย ย ย ย ย ๐์์ธ : canvas api ๋ ํ๊ฒน!I think maybe you misunderstand what a Canvas is.A canvas is essentially a 2 dimensional grid of pixels along an 'X' axis..
-
๐ซง ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ์ ์ ๊ณฑ๊ทผ ํ๋ณ - ๊ฑฐ๋ญ์ ๊ณฑ(**), Number.isInteger() ๋ฉ์๋
https://school.programmers.co.kr/learn/courses/30/lessons/12934ย ํ๋ก๊ทธ๋๋จธ์ค์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์
๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์
๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.programmers.co.krโ๏ธ ๋ฌธ์ ์ถ์ฒย ย ์์์ ์์ ์ ์ n์ ๋ํด, n์ด ์ด๋ค ์์ ์ ์ x์ ์ ๊ณฑ์ธ์ง ์๋์ง ํ๋จํ๋ ค ํฉ๋๋ค.n์ด ์์ ์ ์ x์ ์ ๊ณฑ์ด๋ผ๋ฉด x+1์ ์ ๊ณฑ์ ๋ฆฌํดํ๊ณ , n์ด ์์ ์ ์ x์ ์ ๊ณฑ์ด ์๋๋ผ๋ฉด -1์ ๋ฆฌํดํ๋ ํจ์๋ฅผ ์์ฑํ์ธ์.ย function solution(n) { return Number.isInteger(Math.sqrt(n)) ? (Math.sqrt(n) +1)**2 : -1}..
-
๐ผ๏ธ
[4] ์ด๋ฏธ์ง ์ ์ฅํ๋ ๋ฒํผ ๋ง๋ค๊ธฐ
์ ์ฅํ๊ธฐย ์ด๋ ๊ฒ ๋ฒํผ ์์๋ฅผ ๋ง๋ค์ด์ค ํ,ย JS ๋ก ๋ฒํผ์ ํด๋ฆญํ์ ๋์ ์ด๋ฒคํธ ํจ์๋ฅผ ๋ง๋ค์ด์ค๋ค.const onSaveButtonClick = () => { const image = canvas.toDataURL('image/jpeg'); const link = document.createElement('a'); link.href = image; link.download = 'ProfileByDDOZZA'; link.click(); alert('save!');};ย canva.toDataUrl()ย : ์ด๋ฏธ์ง ํํ์ ํฌํจํ๋ ๋ฐ์ดํฐ URL์ ๋ฐํํ๋ค. ํ์ผ ํ์์ ์ง์ ํ ์ ์๋๋ฐ, ๋ฐ๋ก ์ง์ ํ์ง ์์ผ๋ฉด PNG ํ์์ผ๋ก ๋ด๋ณด๋ด์ง๋ค. ๋ง์ ๊ฒฝ์ฐ์ image/jpegย ํน์ย image/webp ํ์๋..
-
๐ซง ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฌธ์์ด ๋ด p์ y์ ๊ฐ์
์ฝํ
๋ฌธ์ ํ๊ธฐ ๋ค์ ์์!ย function solution(s){const chars = s.split('').map(v=> v.toLowerCase()); let countP = 0; let countY = 0; chars.map(v=> { v==='p' && countP++; v==='y' && countY++; } ) if(countP === 0 && countY === 0){ return true } else{ return countP===countY ? true :false }}๋์๋ฌธ์๋ฅผ ํต์ผํด์ค ํ p ์ y ์ ๊ฐ์๋ฅผ ์ธ์คฌ๋๋ฐ,ย ย function numPY(s){ return s.toUpperCa..
-
๐ผ๏ธ
[3] ์ฌ์ฉํ ์ด๋ฏธ์ง ์ ์ & ์บ๋ฒ์ค์ ์ด๋ฏธ์ง ๋ฃ๋ ๋ฒํผ ๋ง๋ค๊ธฐ
๋ณธ๊ฒฉ์ ์ผ๋ก ์ฌ์ฉํ ์ด๋ฏธ์ง๋ฅผ ๊ทธ๋ ค๋ดค๋ค.ย ์ด๋ฐ ๋๋์ผ๋ก ์์ฑํ ์ ์๊ฒ ๋ค์ํ ์์์ ์บ๋ฆญํฐ๋ฅผ ๊ทธ๋ ธ๋ค.๊ตฌํ ํ ํ์ํ ์์๋ค์ด ์๋ค๋ฉด ๋ ๊ทธ๋ ค์ ์ถ๊ฐํด ๋ณผ ์์ !ย ย ์บ๋ฆญํฐ์ ๋
ธํธ๋ถ ๋ฒํผ๋ง ๋ง๋ค์ด๋ดค๋ค.๊ฐ๊ฐ์ ๋ฒํผ์ eventListener ๋ก click ์ ์ด๋ฏธ์ง๊ฐ ์บ๋ฒ์ค์ ๋ค์ด๊ฐ๊ฒ ๋๋ค.ย ๊ฐ์ ๋ฒํผ์ ๋ค์ ํด๋ฆญ ์ ์ด๋ฏธ์ง๊ฐ ์ฌ๋ผ์ง๋ค.ํด๋ฆญํ ๋ฒํผ์ ๊ตฌ๋ถ์ ์ํด, ์ด๋ฏธ์ง๊ฐ ๋ค์ด๊ฐ ๋ฒํผ์ ๋ฐฐ๊ฒฝ ์ปฌ๋ฌ๊ฐ ๋ฐ๋๊ฒ ์ค์ ํ๋ค.ย ย ย ย ย ย ์ด์ 1. ๋์ผํ ์บ๋ฆญํฐ ํด๋ฆญ ์ img ์ button ์ ํฌ๊ธฐ๊ฐ ๋ง์ง ์์ target์ ์ฐพ๊ธฐ ์ด๋ ค์ด ์ ๋ฒํผ์ ํด๋ฆญํ๊ณ ์ถ์๋ฐ, ์๊พธ ์ด๋ฏธ์ง๊ฐ ์์ ์์ด ์ด๋ฏธ์ง๊ฐ target ์ด ๋๋ค.ย ์ด๋ป๊ฒ ํ ์ง ๊ณ ๋ฏผํ๋ค๊ฐ, ๋ ์ค์ ์ด๋ค๊ฒ ํด๋ฆญ์ด ๋ผ๋ ๊ฐ์ className ์ด ๋ค์ด์จ๋ค๋ฉด,ํด๋นํ๋..
-
๐ผ๏ธ
[2] Canvas API ํ์ฉํ๊ธฐ
Canvas API ํ์ฉํ๊ธฐย canvas api ๋ ๋
ธ๋ง๋์ฝ๋ ๊ฐ์๋ฅผ ๋ค์ผ๋ฉฐ ์ฒ์ ์ ํ๋๋ฐ,ย ์ฌ์ค ์ฒ์ ๋ค์์ ๋ ๋๋ฌด ๋ณต์กํ ๋๋์ด์๊ณ , ์ดํด๊ฐ ์ ๋์ง ์์๋ค.(์ ๋ง ๋ง ๊ทธ๋๋ก ๋ฐ๋ผ ์น๊ธฐ๋ง ํ์๋ค)์ด์ฌ์๋ ๋
ธ๋ง๋์ฝ๋ ๊ฐ์๋ฅผ ์ถ์ฒํ๋ค! ๋ฌด๋ฃ๊ณ ๋๊ผฌ์ค์ด ์ค๋ช
๋ ์ํด์ฃผ์ฌ!ย ์ฝ ๋๋ฌ ๊ฐ์ ๊ฐ๋ฐ ๊ณต๋ถ ๊ณต๋ฐฑ์ด ์์๋ ํฐ๋ผ,ย ๊ฐ์๋ฅผ ๋ค์ผ๋ฉฐ cavas api ์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ์ ๋ณต์ตํ๋ฉฐ mdn ๋ฌธ์๋ ๊ฐ์ด ๋ดค๋๋ฐ,ย ์์ ์ ๊ธฐ์ต์ด ๋ฌด์ํ๊ฒ ์ดํด๊ฐ ์ ๋๊ณ ์ฌ๋ฐ์๋ค.๋จ์ํ๊ฒ ์๊ฐํ๋ฉด ๋๋ ๊ฒ๋ค์ ๋ณต์กํ๊ฒ๋ง ์๊ฐํ ๊ฒ ์๋๊ฐ ์ถ๋ค.ย ย ย ์ฐธ๊ณ ์ฌ์ดํธ๐ mdn ํ๊ตญ์ด ๋ฒ์ (์ ๋ถ ๋ค ๋ฒ์ญ์ด ๋์ด์์ง ์๋ค) HTML ์๋ฆฌ๋จผํธ๋ฅผ ์ดํด๋ณด๋ ๊ฒ์ผ๋ก ์ด ํํ ๋ฆฌ์ผ์ ์์ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด ํ์ด์ง์ ๋์์ ์บ๋ฒ์ค 2D ์ปจํ
์คํธ๋ฅผ..