๋ชฉ๋กComputer Science (26)
์ฐ์ ๊ธฐ๋ก ๐ช

์ด์์ฒด์ ์ ์ญํ ์ด์์ฒด์ ์ ์ญํ ์ ํฌ๊ฒ 2๊ฐ์ง๋ก ๋๋ ์ ์๋ค.์์ ๊ด๋ฆฌ ๋ฐ ํ ๋นํ๋ก์ธ์ค ๋ฐ ์ค๋ ๋ ๊ด๋ฆฌ์ฌ๊ธฐ์ 1๋ฒ์ ์์์ CPU, ๋ฉ๋ชจ๋ฆฌ, ๋ณด์กฐ๊ธฐ์ต์ฅ์น ๋ฑ์ด๋ค.CPU ๊ด๋ฆฌ(CPU ์ค์ผ์ค๋ง) : ์คํ์ค์ธ ๋ชจ๋ ํ๋ก๊ทธ๋จ์ด CPU๋ฅผ ๊ณต์ ํ๊ฒ ํ ๋น๋ฐ๋๋ก ๊ด๋ฆฌ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ : ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ ์ ์ ํ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ๊ณ , ์ข ๋ฃ๋ ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ์์ ์ญ์ ํ์ผ/๋๋ ํ ๋ฆฌ ๊ด๋ฆฌ : ๋ณด์กฐ๊ธฐ์ต์ฅ์น ๋ด๋ถ ์ ๋ณด๋ฅผ ํ์ผ ๋ฐ ํด๋ ๋จ์๋ก ์ ๊ทผํ๊ฒ ํด์ค2๋ฒ ํ๋ก์ธ์ค ๋ฐ ์ค๋ ๋ ๊ด๋ฆฌ๋ ์ด๋ฏธ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ(ํ๋ก์ธ์ค)์ ์์์ ํ ๋นํ๊ณ ๋ด๋ถ์ ์๋ ์ค๋ ๋๋ผ๋ ์คํ์ ๋จ์๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ด๋ค.์ฆ ์ด์์ฒด์ ๋ ์์ ๊ด๋ฆฌ์์ด๋ค. ์์คํ ์ฝ๊ณผ ์ด์ค ๋ชจ๋์์ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํด์ผํ๋ค๊ณ ํ๋๋ฐ, ์ด์์ฒด์ ๋ ์ผ์ข ์ ํ๋ก๊ทธ๋จ์ด๊ธฐ ๋๋ฌธ..

ํฌ์๋ ํ๋ก์ vs ๋ฆฌ๋ฒ์ค ํ๋ก์ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์๋ ๋ค์ํ ์ค๊ฐ์๋ฒ์ ๋คํธ์ํฌ ์ฅ๋น๋ค์ด ์กด์ฌํ๋ค. ์ค๊ฐ์๋ฒ์ ์ ํ์ผ๋ก๋ ํฌ์๋ ํ๋ก์(ํ๋ก์), ๋ฆฌ๋ฒ์ค ํ๋ก์(๊ฒ์ดํธ์จ์ด)๊ฐ ์กด์ฌํ๋ค.ํฌ์๋๋ ์ผ๋ฐ์ ์ผ๋ก ์์ ์๋ฏธํ๋๋ฐ, ์ด๊ฒ์ ์ธํฐ๋ท์ ์๋จ์ ์๋ค๋ ๋ป์ด๋ค. ํ๋ก์ ์๋ฒ๋ ์ฃผ๋ก ์บ์ ์ ์ฅ, ํด๋ผ์ด์ธํธ ์ํธํ ๋ฐ ์ ๊ทผ์ ํ๊ณผ ๊ฐ์ ์ญํ ์ ํ๊ธฐ ๋๋ฌธ์ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ์ธํฐ๋ท์ผ๋ก ๋์๊ฐ๊ธฐ ์ ํ๋ก์ ์๋ฒ๋ฅผ ๊ฑฐ์ณ์ ๊ฐ๋ค. ๋ง์ฝ ์บ์ฑ๋์ด ์๋ ๋ด์ฉ์ด๋ผ๋ฉด ์ธํฐ๋ท์ ๊ฑฐ์ณ ์ค๋ฆฌ์ง ์๋ฒ๊ฐ ์๋ ๊ณณ๊น์ง ๊ฐ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค.๋ฆฌ๋ฒ์ค ํ๋ก์, ์ฆ ๊ฒ์ดํธ์จ์ด๋ ์ธํฐ๋ท์ ๊ฑฐ์ณ์ ์จ ํด๋ผ์ด์ธํธ์ ์์ฒญ๋ค์ด ์ค๋ฆฌ์ง์๋ฒ์ ๋๋ฌํ๊ธฐ ์ ๊ฑฐ์ณ๊ฐ๋ ๊ณณ์ด๋ค. ์ด๋ฌํ ๊ฒ์ดํธ์จ์ด๋ ์บ์ ์ ์ฅ์ ํ ์๋ ์๊ณ ๋ก๋ ๋ฐธ๋ฐ์(๋ถํ ๋ถ์ฐ)๋ก..

์ฟ ํค์์ HTTP๋ ์คํ ์ดํธ๋ฆฌ์ค ํ๋กํ ์ฝ์ด๋ผ๊ณ ํ์๋ค. ๊ทธ๋ ๊ธฐ์ ๊ฐ์ ํด๋ผ์ด์ธํธ์์ ์์ฒญ์ ๋ ๋ฒ ๋ณด๋ด๋ ๋ณ๊ฐ์ ์์ฒญ์ผ๋ก ํ๋จํ๋ค. ๊ทธ๋ฐ๋ฐ ํด๋ผ์ด์ธํธ์ ์ํ๋ฅผ ๊ธฐ์ตํด์ผ ํ ๋๊ฐ ์๋ค. ์๋ฅผ ๋ค์ด ์ฌ์ฉ์๊ฐ ํน์ ์น์ฌ์ดํธ์์ ๋คํฌ๋ชจ๋๋ฅผ ์ผฐ๋ค๊ณ ๊ฐ์ ํ์. ์ดํ ์ด ์ฌ์ฉ์๊ฐ ๋ค์ ์น์ฌ์ดํธ์ ์ ์ํ๋ฉด ๋คํฌ๋ชจ๋๋ก ๋ณด์ฌ์ง๊ฒ ๋๋ค. ์ด๋ฐ ์ ๋ณด๋ ์๋ฒ์ธก์์ Set-Cookie: mode=dark ํค๋๋ฅผ ์ ๋ฌํ๊ณ , ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฅผ ๋ฐ์ ์ ์ฅํด๋๋ค.์ดํ ๊ฐ์ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ผ ๋ ๋ฐ์๋ ์ฟ ํค๊ฐ์ ์ ๋ฌํ๋ค. ์ฟ ํค๊ฐ์ด ์ฌ๋ฌ๊ฐ์ด๋ฉด ์ธ๋ฏธ์ฝ๋ก ์ผ๋ก ๋๋์ด ์ ๋ฌํ๋ค. (Cookie : mode=dark; message=test; . . .)์์์ ๋ดค๋ฏ์ด ์ฟ ํค๋ ์ด๋ฆ=๊ฐ ํ์์ผ๋ก ์ ์ฅ๋๋๋ฐ, ๊ทธ ์ธ์๋ ๋๋ฉ์ธ๊ณผ ๊ฒฝ๋ก, ์ ํจ๊ธฐ๊ฐ๊ณผ ๊ฐ์ ..

DNS ์๋ฒ๋คํธ์ํฌ ์์ ํธ์คํธ๋ฅผ ์๋ณํ ๋์๋ IP์ฃผ์๊ฐ ์ฌ์ฉ๋์ง๋ง, ํธ์คํธ์ IP ์ฃผ์๋ ๋ฐ๋ ์ ์๊ณ ์ฌ๋์ด ๋ณด๊ธฐ์๋ ์ข์ง ์๋ค. ๊ทธ๋ ๊ธฐ์ ๋๋ฉ์ธ ๋ค์์ ์ฌ์ฉํ๋ค. www.google.com ๊ฐ์ ๊ฒ์ ๋๋ฉ์ธ ๋ค์์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.๊ทธ๋ฌ๋ฉด IP์ฃผ์์ ๋๋ฉ์ธ ๋ค์์ ๋งคํ์์ผ์ฃผ๋ ์๋ฒ๊ฐ ํ์ํด์ง๋๋ฐ, ์ด๋ฅผ DNS ์๋ฒ๋ผ๊ณ ํ๋ค. ์์์ ๋ดค๋ค์ํผ ๋๋ฉ์ธ์ ๊ณ์ธต์ ์ผ๋ก ๋ถ๋ฅ๋์ด ์๋ค. ์ด ์ ์ ์ด์ฉํ์ฌ ์ํ๋ ๋๋ฉ์ธ์ IP๋ฅผ ์ฐพ์ ๋ ๊ณ์ธต์ ์ผ๋ก ์ง์ํ๋ค. ๋๋ฉ์ธ ๋ค์์ IP๋ก ๋ฐ๊พธ๋ ๊ณผ์ ์ ์ข ๋ ์์ธํ ์ดํด๋ณด๋๋ก ํ์. ๋จผ์ www.google.com ์ IP ์ฃผ์๋ฅผ ์ฐพ๋๋ค๊ณ ๊ฐ์ ํด๋ณด๋ค. ๊ฐ์ฅ ๋จผ์ ๋ก์ปฌ์์ ์ฐพ๋๋ค. ์๋ฅผ ๋ค์ด ์๋์ฐ์๋ C:\Windows\System32\drivers\etc ๋๋ ํ ๋ฆฌ์ ho..

ํจํท์ ์ต์ข ๋ชฉ์ ์ง๋ ํธ์คํธ๊ฐ ์คํํ๋ ํ๋ก์ธ์ค์ด๋ค. ์ด๋ IP์ฃผ์+ํฌํธ ๋ฒํธ์ ์กฐํฉ์ผ๋ก ์์๋ผ ์ ์๋๋ฐ, ์ ์ก๊ณ์ธต์ ์ด ํฌํธ ๋ฒํธ๋ฅผ ๋ค๋ฃจ๋ ๊ณ์ธต์ด๋ค.ํฌํธ ๋ฒํธํฌํธ ๋ฒํธ๋ ์ด 16๋นํธ๋ก ํํ๋๋ค. ๊ทธ๋์ 0~2^16-1๊น์ง ํํ์ด ๊ฐ๋ฅํ๋ค.0~1023์ฐ๋ ธ์ด ํฌํธ1024~49151๋ฑ๋ก๋ ํฌํธ49152~65535๋์ ํฌํธ์ฐ๋ ธ์ด ํฌํธ๋ ๋์ค์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ํฌํธ์ด๋ค. ์๋ฅผ๋ค์ด FTP(20, 21), SSH(22), TELNET(23), DNS(53), DHCP(67, 68), HTTP(80), HTTPS(443) ๋ฑ์ด ์๋ค.๋ ๋ฑ๋ก๋ ํฌํธ๋ ์ฐ๋ฆฌ๊ฐ ์๋ MySQL(3306), Redis(6379), MSSQL(1433)๋ฑ์ด ์๋ค.๋ง์ง๋ง์ผ๋ก ๋์ ํฌํธ๋ ์ผ๋ฐ์ ์ผ๋ก ํด๋ผ์ด์ธํธ๋ก์ ๋์ํ๋ ํ๋ก..

IP ์ฃผ์๋ํ๋ ์์ ๋ชฉ์ ์ง์ ์ก์ ์ง์ MAC ์ฃผ์๊ฐ ์์๋ฏ์ด, IP ํจํท ํค๋์๋ ์ก์ ์ง, ์์ ์ง์ IP ์ฃผ์ ํ๋๊ฐ ์๋ค. ๋ผ์ฐํฐ๋ ์ด IP ์ฃผ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ชฉ์ ์ง๊น์ง ์ต์ ์ ๊ฒฝ๋ก๋ก ํจํท์ ์ ๋ฌํด์ฃผ๋ ๋คํธ์ํฌ ์ฅ๋น์ด๋ค.IPv4 vs IPv6IPv4๋ 32๋นํธ๋ก 2^32๊ฐ์ ์ฃผ์๋ฅผ ํ ๋นํ ์ ์๋ค.IPv6๋ 128๋นํธ์ด๋ฏ๋ก ์ด 2^128๊ฐ์ ์ฃผ์๋ฅผ ํ ๋นํ ์ ์๋ค.IPv4 192.168.1.1IPv62001:0230:abcd:ffff:0000:0000:ffff:1111IPv4 ํจํท ํค๋์๋ ์๋ณ์, ํ๋๊ทธ, ๋จํธํ ์คํ์ ์ด ์๋ค.์๋ณ์ : ์ด๋ค ํจํท์ด ๋จํธํ ๋ ๊ฒ์ธ์ง ๊ตฌ๋ถํด์ค๋ค. ๊ฐ์ ์กฐ๊ฐ์์ ๋์จ ํจํท๋ค์ ์๋ณ์๊ฐ ๊ฐ๋ค.ํ๋๊ทธ : 3๋นํธ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. ์ฒซ ๋ฒ์งธ๋ 0์ด๊ณ DF(Don’t fragme..

์ด๋๋ท์ด๋?์ด๋๋ท(Ethernet) ์ ๋ฌผ๋ฆฌ ๊ณ์ธต๊ณผ ๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต์์์ ๊ท๊ฒฉ์ ์ ์ํด ๋ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค์ด ๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต์์ ์ฃผ๊ณ ๋ฐ๋ ๋ฐ์ดํฐ์ ๋จ์์ธ ํ๋ ์์ ๊ตฌ์กฐ๋ผ๊ฑฐ๋, MAC์ฃผ์์ ๊ตฌ์กฐ ๋ฑ์ด ์ ์๋์ด ์๋ค.ํ๋ ๋๋ถ๋ถ์ LAN์ ์ด๋๋ท์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํ๋์ด ์๋ค. ๊ทธ๋ฌ๋ฉด ์์ ๋งํ ํ๋ ์์ ๋ํด ๋จผ์ ์ดํด๋ณด๋๋ก ํ์.์ด๋๋ท ํ์ค์ ๋ฐ๋ฅด๋ฉด ํ๋ ์์ ํ๋ฆฌ์ฐ๋ธ, ์คํํธ ํ๋ ์ ๋๋ฆฌ๋ฏธํฐ, ๋ชฉ์ ์ง MAC ์ฃผ์, ์ก์ ์ง MAC ์ฃผ์, ์์๊ณ์ธต์ ๋ณด/๋ฐ์ดํฐ ๊ธธ์ด, ํ์ด๋ก๋, FCS(Frame Check Sequence)๊ฐ ํฌํจ๋์ด ์๋ค.ํ๋ฆฌ์ฐ๋ธ์ ์ก์ ์์ ์์ ์์ ํด๋ญ(ํ์ด๋จธ)๋ฅผ ๋ง์ถ๊ธฐ ์ํจ์ด๋ค. ์์ ์๋ ํ๋ฆฌ์ฐ๋ธ์ ํตํด ์ก์ ์์ ํด๋ญ์ ํ์ ํ๊ณ ๋๊ธฐํํ๋ค.์คํํธ ํ๋ ์ ๋๋ฆฌ๋ฏธํฐ(SFD, Start Fram..

์ด ๊ธ์ ํ๋ก์ด๋ ์๊ณ ๋ฆฌ์ฆ์ ํ์ตํ๋ฉฐ ์ด๋ ๊ฒ ์ง๋ฉด ์ ์๋ ๊น?๋ฅผ ๊ณ ๋ฏผํ ๊ณผ์ ์ ์์ฑํ ๊ธ์ ๋๋ค. ํ๋ก์ด๋ ์๊ณ ๋ฆฌ์ฆ ์์ฒด๊ฐ ์ฒ์์ด๋ผ๋ฉด ์๋ ๋งํฌ์์ ํ๋ก์ด๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ํ ๊ฐ๋ ์ ์ตํ ํ ๊ธ์ ์ฝ์ผ์๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค.https://blog.encrypted.gg/1035 [์ค์ ์๊ณ ๋ฆฌ์ฆ] 0x1C๊ฐ - ํ๋ก์ด๋ ์๊ณ ๋ฆฌ์ฆ์๋ ํ์ธ์, ์ด๋ฒ์๋ ํ๋ก์ด๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ค๋ฃจ๊ฒ ์ต๋๋ค. ์ด์ ์ต๋จ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ์ธ ํ๋ก์ด๋, ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ๋ง ๋ค๋ฃจ๊ณ ๋๋ฉด ๋๋ฆ ๊ธธ์๋ ๊ทธ๋ํ ํํธ๊ฐ ๋๋ฉ๋๋ค. ๋ชฉ์ฐจ๋ ๋์ผ๋ก ํ ๋ฒblog.encrypted.gg ์ต๋จ๊ฑฐ๋ฆฌํ๋ก์ด๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ทธ๋ํ์ ๋ชจ๋ ์ ์ ๊ฐ์ ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ ํธ์ด๋ค.NxNํฌ๊ธฐ์ ๋ฐฐ์ด์ ํฐ ๊ฐ(INF)์ผ๋ก ์ด๊ธฐํํ๋ค.๊ฐ ์ ์ ๊ฐ์ ..

๊ฐ์LCS(Longest Common Subsequence)๋ ์ต์ฅ ๊ณตํต ๋ถ๋ถ ์์ด๋ก, ๋ ๋ฌธ์์ด ์ฌ์ด ๊ณตํต๋๋ ๋ถ๋ถ์ ๋งํ๋ค. ์ฆ ๋ฌธ์์ด์ ์๋์ ์ธ ์์๋ง ๊ฐ์ผ๋ฉด ๋๋ค.์๋ฅผ๋ค์ด ์๋์ ๊ฐ์ด 2๊ฐ์ ๋ฌธ์์ด์ด ์์ ๋LCS๋ ABCCE์ด๋ค. ์ด๋ฐ LCS๋ DP๋ฅผ ํ์ฉํด์ ๊ตฌํ๋ค.๊ณผ์ ๋จผ์ AABCCDE์ A์ ๊ณตํต๋ถ๋ถ์ ๊ตฌํ๋ค๊ณ ๊ฐ์ ํด๋ณด์. ํ์๋ ํ์ฌ๊น์ง ๊ฐ์ฅ ๊ธด ๊ณตํต๋ถ๋ถ์ ๊ธธ์ด๋ฅผ ์ ์ฅํ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ฉด ํ๋ ์๋์ ๊ฐ์ด ๋๋ค. (A๋ ๊ธธ์ด๊ฐ 1์ด๋ ์ต๋ ๊ณตํต๋ถ๋ถ์ ๊ธธ์ด๋ 1์ด๋ค.)์ด์ AABCCDE์ AB์ ์ต์ฅ๊ณตํต๋ถ๋ถ์์ด์ ๊ธธ์ด๋ฅผ ๊ตฌํด๋ณด๋๋ก ํ์. ๊ทธ๋ฌ๋ฉด ์๋์ ๊ฐ์ด ๋ ๊ฒ์ด๋ค.์ฌ๊ธฐ์ ์ฃผ๋ชฉํด์ผ ํ๋ ๋ถ๋ถ์ ๊ณตํต๋๋ ๋ถ๋ถ์ธ B๊ฐ ๋์์ ๋์ด๋ค. ์ ๊ณณ์ AAB์ AB์ LCS์ ๊ธธ์ด๋ฅผ ๊ธฐ๋กํ ๋ถ๋ถ์ธ๋ฐ AB..

dfs๋ฅผ ์์ฉํ์ฌ ๋ฌดํฅ๊ทธ๋ํ์์์ ์ฌ์ดํด์ ํ๋จํ ์ ์๋ ์ฝ๋์ด๋ค. ๊ฐ๋จํ๊ฒ ์ค๋ช ํ์๋ฉด ์ ์ ํ๋์ฉ ์ํํ๋ฉฐ ์ฌ์ดํด์ด ์กด์ฌํ๋์ง ํ๋ณํ๋ ์ฝ๋์ด๋ค. ์๋ฅผ ๋ค์ด ์๋์ ๊ฐ์ ๊ทธ๋ํ๊ฐ ์๋ค๊ณ ํ์. ๋์ผ๋ก ๋ด์๋ 2 3 5 ์ฌ์ดํด์ด ์กด์ฌํจ์ ์ ์ ์๋ค. ์๋ ์ฝ๋์์๋ 1์์๋ถํฐ dfs๋ฅผ ํ๋ฉฐ ๋ฐ๋ก ์ฌ์ดํด์ ์ฐพ๊ฒ ๋๋ค.dfs ๊ฐ์ฅ ์๋ path.pop_back()์ 4์ ๊ฐ์ด ์ฌ์ดํด์ ํฌํจ๋์ง ์๋ ๋ ธ๋๋ฅผ ์ ๊ฑฐํ๋ ์ฝ๋์ด๋ค. ์ธ์ ํ ๋ ธ๋๊ฐ ์ ์ ๋ฐฉ๋ฌธํ ๋ ธ๋๋ฐ์ ์์ ๋์ ๊ฒฝ์ฐ์ด๋ค.#include #include #include using namespace std;vector> graph; // ๊ทธ๋ํ ์ธ์ ๋ฆฌ์คํธvector> edges; // ๊ฐ์ ์ ๋ณดvector visited;vector path;b..

ํต์ ๋ ฌ์ ์ซ์ ํ๋(pivot)๋ฅผ ๊ณจ๋ผ์ ์ฌ๋ฐ๋ฅธ ์๋ฆฌ์ ๋ฃ์ด๊ฐ๋ฉฐ ์ ๋ ฌ์ ์งํํ๋ค. ์ด๋ ๋ฐฐ์ด์ ์ชผ๊ฐ๊ฐ๋ฉฐ ์ฌ๊ท์ ์ผ๋ก ์ ๋ ฌ์ ํ๊ธฐ ๋๋ฌธ์ ์ต์ข ์ ์ธ ์๊ฐ ๋ณต์ก๋๋ O(nlogn)์ด๋ค. ๋์ ๊ณผ์ ์ด๋ก ์ ์ธ ๋ด์ฉ์ ๋ค์ด๊ฐ๊ธฐ ์์ ์ด๋ค์์ผ๋ก ๋์ํ๋์ง ํ์ธํด๋ณด๋๋ก ํ์. ์๋์ ๊ฐ์ด {5, 4, 1, 7, 6, 2} ๋ฐฐ์ด์ด ์๋ค๊ณ ํ์ ๋ ๋งจ ์ผ์ชฝ์ ํผ๋ด์ผ๋ก ์ก๊ณ left์ right๋ฅผ ์๋์ ๊ฐ์ด ๊ฐ๊ฐ ์ง์ ํ๋ค.์ฌ๊ธฐ์์ left๋ pivot๋ณด๋ค ์์์ผํ๊ณ , right๋ pivot๋ณด๋ค ์ปค์ผํ๋ค. ์ด์ left๋ฅผ ํ๋์ฉ ์ฎ๊ธฐ๋ฉฐ 5๋ณด๋ค ํฐ ์๊ฐ ์ฒ์์ผ๋ก ๋์ค๋ ์ง์ ์ ์ฐพ์ผ๋ฉด ์๋์ ๊ฐ์ ์ํ๊ฐ ๋๋ค.right๋ pivot๋ณด๋ค ์ปค์ผํ๋ค๊ณ ํ๋๋ฐ ์ด๋ฏธ pivot๋ณด๋ค ์๋ค. ๊ทธ๋ฌ๋ ์ฌ๊ธฐ์ ๋ฉ์ถฐ์ค๋ค.์ด์ left์ right๊ฐ..

์์ Socket ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์์ Socket, Connect, Write, Read, Close ๋์์ ๋ํด ์ดํด๋ดค๋ค. ์ด๋ฌํ ๋์๋ค์ ๋ท๋จ์์ ํ๋กํ ์ฝ ์คํ๊ณผ LAN ์ด๋ํฐ๊ฐ ์ฒ๋ฆฌํด์ค๋ค. ๊ทธ๋ฆผ์ผ๋ก ๋ณด๋ฉด ์๋์ ๊ฐ๋ค.์ ๋ฒ์ Socket ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊น์ง ์ดํด๋ดค์ผ๋ ํ๋กํ ์ฝ ์คํ ๋ด๋ถ๋ฅผ ์ดํด๋ณด๋๋ก ํ์. TCP์ UDP๋ ์ฉ๋์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ฌ์ฉ๋๋ค. TCP๋ ๋ธ๋ผ์ฐ์ ๋ ๋ฉ์ผ ๋ฑ์ ์ผ๋ฐ์ ์ธ ๋ฐ์ดํฐ ์ก์์ ์ ๋ด๋นํ๊ณ , UDP๋ DNS ์๋ฒ์ ๋ํ ์กฐํ์ ๊ฐ์ ์งง์ ์ ์ด์ฉ ๋ฐ์ดํฐ ์ก์์ ์ ๋ด๋นํ๋ค. (์์ ์ ์ก์๋ ์ฌ์ฉ๋๋ค.)์๋์ ์๋ IP ๋ด๋น์ ํจํท์ ์ก์์ ์ ์ ์ดํ๋ ๋ถ๋ถ์ด๋ค. ๋ด๋ถ์ ์๋ ARP ํ๋กํ ์ฝ์ IP ์ฃผ์์ ๋์ํ๋ ์ธํฐ๋ท์ MAC ์ฃผ์๋ฅผ ์กฐ์ฌํ ๋, ICMP๋ ํจํท ์ด๋ฐ ์ ๋ฐ์ํ๋ ์ค๋ฅ ..

์ง๋ ๊ธ์์๋ BAS๊ฐ ์ ์ ํฉ์ณ ํจํท์ผ๋ก ๋ณต์ํ ๋ค PPP ํจํท์ ์ถ์ถํ๊ณ , ํฐ๋๋ง์ฉ ํค๋๋ฅผ ๋ถ์ฌ ์ก์ ํ๋ ๊ณผ์ ๊น์ง ์ดํด๋ดค์๋ค. ๊ทธ๋์ ๊ณผ์ ์ ๋ณต๊ธฐํด๋ณด๋ฉด MAC์ PPPoE๊ฐ BAS์ ์ ๋ฌ๋๋๋ฐ์ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ BAS์์ ๋ฒ๋ ค์ง๋ค๊ณ ํ๋ค. ์ด ๊ณผ์ ์ ๋ํด ์ข ๋ ์ดํด๋ณด๋๋ก ํ์.์ฐ์ BAS ์ญํ ์ ํฌ๊ฒ ์๋ ๋ ๊ฐ์ง ์ด๋ค.1. ๋ณธ์ธ ํ์ธ๊ณผ ์ค์ ๊ฐ ํต์ง2. ํฐ๋๋ง์ ์ด์ฉํ ํจํท ์ด๋ฐ์์ ๊ทธ๋ฆผ์ ๋์จ ๋์์ 2๋ฒ ์ญํ ๊ณผ ๊ด๋ จ๋ ๊ฒ์ด๋ค.ADSL์ด๋ FTTH ์ก์ธ์ค ํ์ ์ ์ต์ด์ ํ๋ก๋ฐ์ด๋(KT, SKT ๋ฑ)๊ฐ ์ฌ์ฉ์์๊ฒ ํ ๋นํ ์ธํฐ๋ท ์ ์์ฉ ์ฌ์ฉ์๋ช ๊ณผ ํจ์ค์๋๋ฅผ ์ ๋ ฅํด ๋ก๊ทธ์ธ์ ํด์ผ ์ธํฐ๋ท์ ์ก์ธ์คํ ์ ์๋ค. BAS๋ PPPoE๋ผ๋ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํด ์ด๋ฌํ ์ญํ ์ ํ๋ค. PPPoE๋ PPP๋ผ๋ ๋ฐฉ์์ ADS..

์์ ๋ฉ์์ง๋ฅผ ๋ฐ์ผ๋ฉด ํ๋กํ ์ฝ ์คํ์ด ๋ฉ์์ง๋ฅผ ์ก์ถํด์ค๋ค๊ณ ํ์๋ค. ์ด๋ฒ ๊ธ์์๋ ์ด๋ ๊ฒ ์ก์ถ๋ ๋ฉ์์ง๊ฐ ์ด๋ป๊ฒ ํด์ ์ธํฐ๋ท๊น์ง ์ก์ถ๋๋์ง ์์๋ณผ ๊ฒ์ด๋ค.๊ฐ์๋จผ์ ์ง์์ ์ธํฐ๋ท์ผ๋ก ๋๊ฐ๊ธฐ๊น์ง์ ์ ์ฒด์ ์ธ ๊ณผ์ ์ ์ดํด๋ณด๋๋ก ํ์.ํด๋ผ์ด์ธํธ์์ ๋ง๋ ํจํท์ ๋ค์ํ ํํ๋ก ๋ณํํ๋ฉฐ ํ๋ก๋ฐ์ด๋(ISP : KT, SKT ๋ฑ)์ ๋์ฐฉํ๊ฒ ๋๋ค. ์ฐธ๊ณ ๋ก ์ข์ธก ๋์ ์๋ ์ธํฐ๋ท ์ ์์ฉ ๋ผ์ฐํฐ๋ ํจํท ์ก์ ๊ณผ ํจํท ์ค๊ณ ๋์์ ํ๋ค.ํจํท ์ค๊ณ๋ ๋ค๋ฅธ ๋คํธ์ํฌ์์ ๋ค์ด์จ ํจํท์ ๋ชฉ์ ์ง๋ก ์ ๋ฌํ๋ ์ค๊ฐ ์ญํ ์ด๊ณ , ํจํท ์ก์ ์ ์์ ๊ณผ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ์ฅ์น๊ฐ ์์ฑํ ํจํท์ ๋ฐ์ ๋คํธ์ํฌ๋ก ์ ์กํ๋ ๊ฒ์ด๋ค.ํจํท ์ค๊ณ ๋์์ ์ด๋๋ท์ ๋ผ์ฐํฐ์ ๊ฑฐ์ ๊ฐ๋ค. ์ฌ๊ธฐ์ ์ฃผ๋ชฉํ ๊ณณ์ ํจํท ์ก์ ๋์์ด๋ค. ์ด๋๋ท์์์ ํจํท ์ก์ ์ ์ฃผ ๋ชฉ์ ์ ..

๋ธ๋ผ์ฐ์ ์ google.com์ ์ ๋ ฅํ์ ๋ ์ผ์ด๋๋ ์ผ์ ๋ํด ๋งํด๋ณด์ธ์. ๋ผ๋ ์ง๋ฌธ์ ๊ธฐ์ ๋ฉด์ ์ค๋น๋ฅผ ํด๋ดค๋ค๋ฉด ํ๋ฒ์ฏค ๋ค์ด๋ดค์๋ฒํ ์ง๋ฌธ์ด๋ค. ์ด์ ๋ด๋ถ ๋์์ ์ฐจ๊ทผ์ฐจ๊ทผ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค.์ผ๋ฐ์ ์ผ๋ก ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ฒ๊ฐ ์๋ต์ ๋ณด๋ธ๋ค. ๋ผ๊ณ ํ๋๋ฐ ๋ด๋ถ์ ์ผ๋ก๋ ๋ง์ ์ผ๋ค์ด ์ผ์ด๋๋ค. 1. URL ์ ๋ ฅ: ์ฌ์ฉ์๊ฐ ์น ๋ธ๋ผ์ฐ์ ์ URL์ ์ ๋ ฅํ๋ค. 2. ๋๋ฉ์ธ ์ด๋ฆ ์ถ์ถ: ๋ธ๋ผ์ฐ์ ๋ ์ ๋ ฅํ URL์์ ๋๋ฉ์ธ ์ด๋ฆ์ ์ถ์ถํ๋ค.3. DNS ์ฟผ๋ฆฌ ์ ์ก: ๋ธ๋ผ์ฐ์ ๋ DNS ๋ฆฌ์กธ๋ฒ์ ๋๋ฉ์ธ ์ด๋ฆ์ ์ ๋ฌํ์ฌ ํด๋น IP ์ฃผ์๋ฅผ ์์ฒญํ๋ค. 4. IP ์ฃผ์ ์์ : DNS ๋ฆฌ์กธ๋ฒ๊ฐ ๋๋ฉ์ธ ์ด๋ฆ์ ๋ํ IP ์ฃผ์๋ฅผ ๋ฐํํ๋ค. 5. ์์ผ ์ฐ๊ฒฐ ์๋ฆฝ: ์ด์ ๋ธ๋ผ์ฐ์ ๋ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ์๋ฒ์์ TCP/IP ..

์ด ๊ธ์ ์๋ ๊ธ์ ์ฝ์ผ๋ฉฐ ์ ๋ฆฌํ ๋ด์ฉ๊ณผ, ์ถ๊ฐ๋ก ๊ถ๊ธํ ์ ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.https://mangkyu.tistory.com/286 [MySQL] B-Tree๋ก ์ธ๋ฑ์ค(Index)์ ๋ํด ์ฝ๊ณ ์๋ฒฝํ๊ฒ ์ดํดํ๊ธฐ์ธ๋ฑ์ค๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์(๋๋ ์๊ณ ๋ฆฌ์ฆ)์ ๋ฐ๋ผ B-Tree ์ธ๋ฑ์ค, Hash ์ธ๋ฑ์ค, Fractal ์ธ๋ฑ์ค ๋ฑ์ผ๋ก ๋๋ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก B-Tree ๊ตฌ์กฐ๊ฐ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ B-Tree ์ธ๋ฑ์ค๋ฅผ ํตํด ์ธ๋ฑ์ค์ ๋์mangkyu.tistory.com B- Tree๋ BinaryTree(์์์ด 2๊ฐ์ธ ํธ๋ฆฌ)์์ ๊ฐ๋ ์ ํ์ฅํด n๊ฐ์ ์์์ ๊ฐ์ง ์ ์๋๋ก ํ ๊ฒ์ด๋ค.DB์๋ ํ์ด์ง๋ผ๋ ๊ฐ๋ ์ด ์๋๋ฐ, ํ์ด์ง๋ ๋์คํฌ์ ๋ฉ๋ชจ๋ฆฌ(๋ฒํผํ)์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ฐ๋ ์ต์ ๋จ์์ด๋ค. ์ธ๋ฑ์ค์ PK, ํ ..

์ปดํจํฐ ๊ตฌ์กฐ์ ํฐ 3๊ฐ์ง ์์๋ CPU, Memory, I/O์ด๋ค. ํ๋ก๊ทธ๋จ์ ํฌ๊ฒ 3๊ฐ์ง๋ก ๋๋์ด ๋ณผ ์ ์๋ค. Application Software ๊ณ ๊ธ ์ธ์ด๋ก ์์ฑ๋์ด ์๋ค. System Software Compiler(์ปดํ์ผ๋ฌ): HLL(High-level language)์ฝ๋๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญํ๋ค. Operating System(์ด์์ฒด์ ): I/O๋ฅผ ๊ด๋ฆฌํ๊ณ , ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๊ณต๊ฐ์ ๊ด๋ฆฌํ๋ค. ์ผ๋ค์ ์ค์ผ์ค๋งํ๊ณ ์์์ ๊ณต์ ํ๋ค. Hardware Processor, Memory, I/O controllers๊ฐ ํฌํจ๋๋ค. ์์ ์ปดํ์ผ๋ฌ๊ฐ HLL์ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญํ๋ค๊ณ ํ๋๋ฐ ํ๋ก๊ทธ๋จ ์ฝ๋๋ High-level language, Assembly language, Hardware representation ..

์ด ๊ธ์์๋ ์ฐ๋ฆฌ๊ฐ ์ง ํ๋ก๊ทธ๋จ์ด ์ด๋ป๊ฒ ์ปดํ์ผ๋์ด ์คํ๋๋์ง ์ดํด๋ณผ ๊ฒ์ด๋ค. ๋จผ์ ์๋์ ๊ฐ์ ํ๋ก๊ทธ๋จ์ด ์๋ค๊ณ ๊ฐ์ ํด๋ณด์. #include #define MAX 5 int main(){ printf("hello world\n"); //hello world๋ฅผ ์ถ๋ ฅ int a = MAX; return 0; } ์ดํ ์ฐ๋ฆฌ๊ฐ gcc hello.c ๋ผ๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด ์๋์ ๊ฐ์ด a.outํ์ผ์ด ์์ฑ๋๋ค. ์ด a.outํ์ผ์ ์คํ ๊ฐ๋ฅํ ๋ชฉ์ ํ์ผ(executable object file)์ด๋ค. ์ฐ๋ฆฌ๊ฐ ๋ณด๊ธฐ์๋ hello.cํ์ผ์ด ๋ฐ๋ก a.outํ์ผ๋ก ๋ณํ ๊ฒ์ผ๋ก ๋ณด์ฌ์ง์ง๋ง ์ฌ์ค ๋ด๋ถ์ ์ผ๋ก ์ ์ฒ๋ฆฌ, ์ปดํ์ผ, ์ด์ ๋ธ๋ฆฌ, ๋งํน ๊ณผ์ ์ ๋ชจ๋ ๊ฑฐ์น ๊ฒ์ด๋ค. ์ด์ ๋ถํฐ ๊ทธ ๊ณผ์ ์ ํ๋ํ๋ ์ดํด๋ณด๋๋ก ํ์. ์ ์ฒ๋ฆฌ(h..

๐ ํค์๋ ์์ฐจํ๋ก, ์กฐํฉํ๋ก, ํ๋ฆฝํ๋กญ ๐์์ฐจํ๋ก(Sequential Circuits)์ ์กฐํฉํ๋ก(Comninational Circuits) ์์ฐจํ๋ก๋ ์ถ๋ ฅ์ด ํ์ฌ์ ์ ๋ ฅ๊ณผ ์ด์ ์ ๋ ผ๋ฆฌํ๋ก ์ํ์ ์กฐํฉ์ ์ํด ๊ฒฐ์ ๋๋ ๋ ผ๋ฆฌํ๋ก, ์กฐํฉํ๋ก๋ ์ ๋ ฅ์ด ์ฃผ์ด์ง๋ฉด ๋ฐ๋ก ์ถ๋ ฅ์ด ๋์ค๋ ํ๋ก์ด๋ค. ์์ ์์ฐจํ๋ก๋ ์ด์ ์ ๋ ผ๋ฆฌํ๋ก ์ํ์ ์ํฅ์ ๋ฐ๋๋ค๊ณ ํ๋๋ฐ, ๊ทธ๋ฌ๊ธฐ ์ํด ์ด์ ์ ๊ฐ์ ๊ธฐ์ต์ฅ์น์ ์ ์ฅํด์ผํ๋ค. ์ด๋ ์ด ๊ธฐ์ต์์๋ก ๋ง์ด ์ฐ์ด๋ ๊ฒ์ด ๋ฐ๋ก ํ๋ฆฝํ๋กญ์ด๋ค. ์ฆ ์์ฐจํ๋ก๋ ์กฐํฉํ๋ก+๊ธฐ์ตํ๋ก์ธ ๊ฒ์ด๋ค. ์กฐํฉ ๋ ผ๋ฆฌํ๋ก์ ํ์ฌ ์ถ๋ ฅ๊ฐ์ ๊ธฐ์ตํ๋ก์ ์ ์ฅ๋๊ณ ์ด ์ ์ฅ๋ ๊ฐ์ ๋ค์ ๋จ๊ณ๋ฅผ ์ํด ํผ๋๋ฐฑ ๊ฒฝ๋ก๋ฅผ ํตํด ์กฐํฉ ๋ ผ๋ฆฌํ๋ก์ ์ ๋ ฅ ๋จ์ผ๋ก ๋ค์ด๊ฐ๊ฒ ๋๋ค. ๐ํ๋ฆฝํ๋กญ ๊ทธ๋ ๋ค๋ฉด ์ด ํ๋ฆฝ ํ๋กญ์ ๋ํด ์กฐ๊ธ ๋ ์์ธํ ์์..
1. ๋ฒกํฐ ๋ด์ ์กด์ฌํ๋์ง ์ฌ๋ถ ํ์ (binary_search) ์ด ๊ฒฝ์ฐ์๋ ์ด์งํ์์ ์ฌ์ฉํ๋๊ฒ์ด ๋น ๋ฅด๋ค. ๋จ ์ด์งํ์์ ์ฌ์ฉํ๋ ค๋ฉด ์ ๋ ฌ์ด ๋์ด์์ด์ผ ํ๋ค. ์ ์ ์๋์ด์๋ค. ์๋์ ๊ฐ์ด ์ฌ์ฉํ๋ค. binary_search(์์๋ฒ์, ๋๋ฒ์, ์ฐพ์ ๊ฐ); ์์ ์ฝ๋ #include #include #include using namespace std; int main() { int num; cin >> num; vector vec = { 1,3,5,7,9 }; //์กด์ฌ์ 1, ๊ทธ๋ ์ง ์์ผ๋ฉด 0 ๋ฆฌํด if (binary_search(vec.begin(), vec.end(), num)) { cout num; vector vec = { 1,3,5,7,9 }; int idx = find(vec.begin(),..

19-> 1+ 9 = 10 ์ด๋ฐ์์ผ๋ก ์๋ฆฟ์๋ฅผ ๊ตฌํด์ฃผ๋ ์ฝ๋์ด๋ค. #include using namespace std; int seperateAndPlus(int x) { int res = 0; while (x != 0) { res = res + x % 10; x /= 10; } return res; } int main() { int num; cin >> num; cout

๊ฐ๋ ๋ถํ ์ ๋ณต ์๊ณ ๋ฆฌ์ฆ์ ์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ๋ ์ด์์ ๋ถ๋ถ๋ฌธ์ ๋ก ๋๋ ๋ค ๊ฐ ๋ฌธ์ ์ ๋ํ ๋ต์ ๊ณ์ฐํ๊ณ , ์ด๋ฅผ ๋ณํฉํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ข ๋ง๋ถ์ ํํ์ ๋น๋ฆฌ์๋ฉด ๊ฐ๊ฐ ๊ฒฉํ ๋ผ๊ณ ๊ฐ๋จํ ์ค๋ช ํ ์ ์๋ค. ๋ฐ๋ก ์์ ๋ฅผ ๋ณด๋๋ก ํ์. ์์ 1 : ์์ด์ ํฉ 1๋ถํฐ N๊น์ง์ ๊ฐ์ ๊ตฌํด์ผ ํ๋ค๊ณ ๊ฐ์ ํ์. ์ด๋ฅผ ๋จ์ ์ฌ๊ทํจ์๋ก ๊ตฌํํ๋ฉด ์๋์ ๊ฐ์ ๊ฒ์ด๋ค. #include using namespace std; int recursiveSum(int N) { if (N == 1) { return N; } else { return recursiveSum(N - 1) + N; } } int main() { int A; cin >> A; cout > A; cout