์๊ณ ๋ฆฌ์ฆ
๊ทธ๋ฅ ์๊ณ ๋ฆฌ์ฆ์ ใ
๋งค์ผ ํธ๋๋ฐ ์์๋ฅผ ๋๊ณ ์๋ค... ์ด๋ป๊ฒ ํด์ผ์ง ๋ฌธ์ ๋ฅผ ํ ์ ์์์ง ๊ณ ๋ฏผํ๋ ๊ฒ๋ถํฐ ์์ฃผ ํ๋ ์ผ์ธ๊ฒ๊ฐ๋ค.
๋ ํผ๋ฐ์ค๋ฅผ ๋ณด๋๊ฒ์ ๋ํด์ ์์ ์๋ ํฌ๊ฒ ์๋ชป๋ ์๊ฐ์ด๋ผ๊ณ ํ๋๋ฐ, ์ด๋์ ๋์ ์๊ฐ์ ์ฐ๊ณ ๋๋ฉด ๋ ํผ๋ฐ์ค๋ฅผ๋ณด๊ณ ๊ทธ ์ฝ๋๋ฅผ ์ดํดํ๋๊ฒ๋ ๋์์ง ์์๊ฒ๊ฐ๋ค. (์คํฐ๋ํ๋ ๋ฐฑ์ค๋ ์น๊ตฌ๋ค์ ๋ฌธ์ ๋ฅผ ์ ๋ง ์ ํธ๋๊ฒ๊ฐ๋ค.. ๋๋จํจ)
cs50
์ด๋ฒ ํํธ๋ ์ฝ๋ฉ์ ์ฒ์ ๋ฐฐ์ธ๋, ๊ทธ๋ฆฌ๊ณ ์ง๊ธ ๊น์ง๋ ๊ณ์ ์ฌ์ฉํด์จ html,css,javascript์ ๋ํ ๊ฐ์๋ผ์ ์ฝ๊ฐ ์ง๋ฃจํ ๋๋์ด ์์๋ค. ์ด๋ฏธ ๋ค ์๊ณ ์๋ ๋ถ๋ถ์ด๋ผ์ ๊ทธ๋ฐ๊ฒ๊ฐ๋ค.
php๋ ๊ตญ๋น์์
์ ํ์๋ ์ ์๋๊ป์ ํ์ผ์ ์ ๋ฌํด์ฃผ๊ณ ๋ฐฑ์ค๋ ํํธ๋ฅผ ๋งก์์ ํ์
จ์๋ ๋ณด๊ณ , ์ค์ ๋ก๋ ์์ฑํด๋ณธ์ ์ ์๋ค. (๊ฐ์์ ๋์จ MySql ํ์ด์ง๋ ์ค์ ๋ก ๋ค์ด๊ฐ ๋ณด์๊ณ , ์ง๊ธ๋ ์์ ์ ๋ง๋ค์ด์ ธ์๋ ๋ฐ์ดํฐ ํ
์ด๋ธ๋ค์ด ๊ทธ๋๋ก ์๋ค. ํ์ง๋ง ๋ฐฑ์ค๋ ํํธ๋ ์ ๋ชจ๋ฅด๊ฒ ๋ค ใ
..)
์ ์ฒด์ ์ผ๋ก cs50 ๊ฐ์๋ ๋ง๋ฌด๋ฆฌ ํ๋ค. ์ ์ฒด์ ์ผ๋ก ์์
์ ๊ธธ์ด๋ ์งง๊ณ ๊ฐ๋
์ ๋์ ๊ฐ๋ฒผ์ด ์์
์ด๋ผ์ ๋ถ๋ด์์ด ์์
์ ๋ค์๋ค.
์ด์ ๋ถํฐ๋ ์คํฐ๋ ์น๊ตฌ๋ค๊ณผ ์ปดํจํฐ๊ณผํ? ๊ณตํ?์ ๋์์ด ๋๋ ๋์๋ฅผ ๊ตฌ๋งคํด์ ๊ณต๋ถ๋ฅผ ํด์ผ๊ฒ ๋ค. ๋น์ ๊ณต์๋ผ์ ๋ญ๊ฐ ๋ง์ด ๋ถ์กฑํ๊ฑด ์ด์ฉ์ ์์ผ๋ ์ฑ์๋๊ฐ์ผ ํ ๊ฒ ๊ฐ๋ค. ๐ญ
์๊ธฐ์๊ฐ ํ์ด์ง ๋ง๋ค๊ธฐ
SVGํ์ผ์ ์ด์ฉํด์ ํ
์คํธ์ ์ ๋๋ฉ์ด์
ํจ๊ณผ๋ฅผ ์ฃผ์๋ค. (ํ์ด๋ ํ๋ก์ ํธ๋ ์ฌ์ฉํ๋ ์ ๋๋ฉ์ด์
), svg๋ฅผ ์ด์ฉํด์ ์ ๋๋ฉ์ด์
ํจ๊ณผ๋ฅผ ์ ์ฃผ๊ณ ์ถ์๋ฐ svg์ ๋ํ ์ดํด๊ฐ ๋ถ์กฑํด์ ์ฝ์ง ์์๊ฒ๊ฐ๋ค... ํํํ ์๊ฐ๋ ๋๋ง๋ค ์ด ๋ถ๋ถ์ ๊ณต๋ถํด์ ๋ด๊ฒ์ผ๋ก ๋ง๋ค๊ณ ์ถ๋ค. (์ด๋ฐ ํจ๊ณผ๋ฅผ ์ฃผ๋ ๋ถ๋ถ์ด ๋๋ฌด ์ฌ๋ฐ๋ค. ๐ค)
6: ์น ํ๋ก๊ทธ๋๋ฐ
Topic1: ์น ํ์ด์ง๋ ์ด๋ป๊ฒ ๋ง๋๋ ๊ฑธ๊น์?
<img>
์ด๋ฏธ์ง ํ๊ทธ์๋ src๋ผ๋ ์์ฑ์ด ์๋๋ฐ ํ์ผ์ ์์น๊ฐ ์ด๋์ธ์ง ๋ช
์ํ๋ค.Topic2: ์นํ์ด์ง์ ๋ด์ฉ์ ๋์ฑ ๋ณด๊ธฐ ์ข๊ฒ ๋ง๋ค ์ ์์๊น์?
css : CSS(Cascading Style Sheets)๋ ์น ํ์ด์ง๋ฅผ ๋์์ธ ํ๊ธฐ์ํด์ ์ฌ์ฉ๋๋ ์ธ์ด๋ค.
Stlye ์์ฑ : css๋ html์์ ํ๊ทธ์์ style ์์ฑ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. (์ธ๋ผ์ธ ์คํ์ผ)
=> ์ค์ ๋ก ์ฝ๋ฉํ ๋์๋ ์ ํธํ์ง ์๋ ๋ฐฉ์์ด๋ค. (์ ์ง๋ณด์๊ฐ ํ๋ค๊ณ ์ฝ๋๊ฐ ๋ณต์กํด์ง๋ค.)
๋ถ๋ฆฌ๋ CSS : cssํ์ผ์ ๋ฐ๋ก ๋ถ๋ฆฌํ์ฌ ์ฌ์ฉํ๋๋ฐ, html๋ฌธ์์ head์์์ <link>
๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฉํ๋ค. => <link href=โstyle.cssโ rel=โstylesheetโ />
Topic3: ๋ก๊ทธ์ธ ๊ธฐ๋ฅ, ๊ธ์ฐ๊ธฐ ๊ธฐ๋ฅ์ ์ด๋ป๊ฒ ๋ง๋ค ์ ์์๊น์?
php : ์น ํ์ด์ง์๊ฒ ์ด๋ ํ ๊ธฐ๋ฅ์ ์ฃผ๊ธฐ ์ํด์ ํด์ํ ์ธ์ด์ธ PHP๋ฅผ ์ฌ์ฉํ๋ค.
=> ๊ฐ์์์๋ php๋ก ๊ธฐ๋ฅ๊ตฌํ์ ํ๊ฒ์ ๋ณด์ฌ์คฌ์ง๋ง ์ค์ ํ๋ก์ ํธ๋๋ ์ฌ์ฉํด ๋ณธ ์ ์ด ์๋ค.
MVC : MVC๋ ๋ชจ๋ธ ๋ทฐ ์ปจํธ๋กค๋ฌ์ ์ฝ์๋ก ์ฝ๋๋ฅผ ๊ธฐ๋ฅ๋ณ๋ก ๋ถํดํ๋ ์ํํธ์จ์ด ์ค๊ณ๋ฐฉ๋ฒ์ด๋ค.
Topic4: ์ด๋ป๊ฒ ์๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์์๊น์?
SQL : SQL(Structured Query Language)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฌ์ฉํ๋ ์ธ์ด์ด๋ค.
๋ฐ์ดํฐ์ ์ ์ฅ : ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ง์ ํ ์์๋ ๊ตฌ์กฐ์ด๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด SQL์ ์์ ๊ณผ ๊ฐ์ ํ๋ก๊ทธ๋จ๊ณผ ๋น์ทํ์ง๋ง ๋ฐฉ๋ํ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ง์ ํ ์ ์๋๋ก ํด์ค๋ค.
SQL : SQL ์ธ์ด์ ์ข
๋ฅ๋ ๋งค์ฐ ๋ง์ง๋ง ๋ฐ์ดํฐ ์กฐ์์ธ์ด 4๊ฐ๋ก ์์ฝํ ์ ์๋ค.
Topic5: ์นํ์ด์ง์ ๋ฉ์ง ํจ๊ณผ๋ค์ ์ด๋ป๊ฒ ๋ง๋๋ ๊ฑธ๊น์?
๋ฉ์ฉกํ ์ฌ๊ฐํ
๋ฌธ์ ์ค๋ช
:
๊ฐ๋ก ๊ธธ์ด๊ฐ Wcm, ์ธ๋ก ๊ธธ์ด๊ฐ Hcm์ธ ์ง์ฌ๊ฐํ ์ข
์ด๊ฐ ์์ต๋๋ค. ์ข
์ด์๋ ๊ฐ๋ก, ์ธ๋ก ๋ฐฉํฅ๊ณผ ํํํ๊ฒ ๊ฒฉ์ ํํ๋ก ์ ์ด ๊ทธ์ด์ ธ ์์ผ๋ฉฐ, ๋ชจ๋ ๊ฒฉ์์นธ์ 1cm x 1cm ํฌ๊ธฐ์
๋๋ค. ์ด ์ข
์ด๋ฅผ ๊ฒฉ์ ์ ์ ๋ฐ๋ผ 1cm ร 1cm์ ์ ์ฌ๊ฐํ์ผ๋ก ์๋ผ ์ฌ์ฉํ ์์ ์ด์๋๋ฐ, ๋๊ตฐ๊ฐ๊ฐ ์ด ์ข
์ด๋ฅผ ๋๊ฐ์ ๊ผญ์ง์ 2๊ฐ๋ฅผ ์๋ ๋ฐฉํฅ์ผ๋ก ์๋ผ ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ํ์ฌ ์ง์ฌ๊ฐํ ์ข
์ด๋ ํฌ๊ธฐ๊ฐ ๊ฐ์ ์ง๊ฐ์ผ๊ฐํ 2๊ฐ๋ก ๋๋์ด์ง ์ํ์
๋๋ค. ์๋ก์ด ์ข
์ด๋ฅผ ๊ตฌํ ์ ์๋ ์ํ์ด๊ธฐ ๋๋ฌธ์, ์ด ์ข
์ด์์ ์๋ ์ข
์ด์ ๊ฐ๋ก, ์ธ๋ก ๋ฐฉํฅ๊ณผ ํํํ๊ฒ 1cm ร 1cm๋ก ์๋ผ ์ฌ์ฉํ ์ ์๋ ๋งํผ๋ง ์ฌ์ฉํ๊ธฐ๋ก ํ์์ต๋๋ค.
๊ฐ๋ก์ ๊ธธ์ด W์ ์ธ๋ก์ ๊ธธ์ด H๊ฐ ์ฃผ์ด์ง ๋, ์ฌ์ฉํ ์ ์๋ ์ ์ฌ๊ฐํ์ ๊ฐ์๋ฅผ ๊ตฌํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
์ ํ์ฌํญ :
W, H : 1์ต ์ดํ์ ์์ฐ์
์
์ถ๋ ฅ ์ #1
๊ฐ๋ก๊ฐ 8, ์ธ๋ก๊ฐ 12์ธ ์ง์ฌ๊ฐํ์ ๋๊ฐ์ ๋ฐฉํฅ์ผ๋ก ์๋ฅด๋ฉด ์ด 16๊ฐ ์ ์ฌ๊ฐํ์ ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค. ์๋ ์ง์ฌ๊ฐํ์์๋ 96๊ฐ์ ์ ์ฌ๊ฐํ์ ๋ง๋ค ์ ์์์ผ๋ฏ๋ก, 96 - 16 = 80 ์ ๋ฐํํฉ๋๋ค.
// ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ ์ด์ฉํ ์ต๋ ๊ณต์ฝ์ ๊ตฌํ๊ธฐ
function gcd(w, h) { // ์ฒ์ W์ H๋ฅผ ๋ฐ์ต๋๋ค.
// W์ H์ ๋๋จธ์ง๋ฅผ ๊ตฌํฉ๋๋ค.
const mod = w % h;
// ๋ง์ฝ ๋๋จธ์ง๊ฐ 0์ผ ๊ฒฝ์ฐ H๋ฅผ ๋ฐํํฉ๋๋ค.
if (mod === 0) {
return h;
}
// ๋ง์ฝ 0์ด ์๋๊ฒฝ์ฐ W์ H๋ฅผ ๋ฃ๊ณ H์ ๋๋จธ์ง์ธ mod๋ฅผ ๋ฃ์ด ํด๋น ํจ์๋ฅผ ๋ค์ ํธ์ถํด ์ค๋๋ค.
return gcd(h, mod);
}
function solution(w, h) {
// ์ต๋ ๊ณต์ฝ์๋ฅผ ๊ตฌํด์ค๋๋ค.
const gcdVal = gcd(w, h);
// ๊ณต์์ ๋ง์ถฐ ์ฌ์ฉ
return w * h - (w + h - gcdVal);
}
๐ ์ธ์์...
์ง์ฌ๊ฐํ์์ ๋๊ฐ์ ์ด ํต๊ณผํ๋ ์ ์ฌ๊ฐํ์ ๊ฐฏ์...
'(๊ฐ๋ก) + (์ธ๋ก) - (๊ฐ๋ก ์ธ๋ก ์ต๋๊ณต์ฝ์)' ์ด๋ฐ ๊ณต์์ด ์๋ค์ ..
์์ ๊ณต์๊ณผ ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ์๋ฉด ๋๋ฑ!!
์ด๋ ต๋ค ์ด๋ ค์๐