3-way handshake TCP/IP ํ๋กํ ์ฝ๋ก ํต์ ํ๊ธฐ ์ , ์ ํํ ์ ๋ณด ์ ์ก์ ์ํด ์๋๋ฐฉ ์ปดํจํฐ์ ์ธ์
์ ์๋ฆฝํ๋ ๊ณผ์ TCP ์ฐ๊ฒฐ ์ด๊ธฐํ ์๋ก ํต์ ์ ์ํด ๊ด๋ฌธ(port)๋ฅผ ํ์ธํ๊ณ ์ฐ๊ฒฐํ๊ธฐ ์ํด 3๋ฒ์ ์์ฒญ(SYN), ์๋ต(ACK) ๋๋ ๊ฒ ์ด ๊ณผ์ ์์ ์๊ฐ์ด ๋ง์ด ์์๋จ TCP ๊ณผ์ ์ค(connection setup - data transfer - connection termination) connection setup์ ํด๋น ์ฐ๊ฒฐ ๊ณผ์ ํจํท = ์ธ๊ทธ๋จผํธ (TCP ์์) ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ฐ๊ฒฐ ์์ฒญ์ ์ํด SYN ํจํท ์ ์ก ์๋ฒ์์ ํด๋น ํฌํธ๋ LISTEN ์ํ๋ก SYN ํจํท์ ๋ฐ๊ณ SYN_RCV ์ํ๋ก ๋ณ๊ฒฝ ์๋ฒ๋ ์ ์์ ์ผ๋ก ๋ฐ์๋ค๋ ACK ํจํท + ์๋๋ฐฉ์ ํฌํธ๋ฅผ ์ด์ด๋ฌ๋ผ๋ SYN ํจ..
์ ์ฒด ๊ธ
์ฝ๋ฉํ ์คํธ ์ค๋น ๋ธ๋ก๊ทธ: https://velog.io/@chaerlo127๐ ๋ฌธ์ ์ ์ข
๋ฐ์ด๋ฌ์ค์ธ ์ ๋ฐ์ด๋ฌ์ค๋ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ํ๋๋ค. ํ ์ปดํจํฐ๊ฐ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๋ฉด ๊ทธ ์ปดํจํฐ์ ๋คํธ์ํฌ ์์์ ์ฐ๊ฒฐ๋์ด ์๋ ๋ชจ๋ ์ปดํจํฐ๋ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๊ฒ ๋๋ค. ์๋ฅผ ๋ค์ด 7๋์ ์ปดํจํฐ๊ฐ ๊ณผ ๊ฐ์ด ๋คํธ์ํฌ ์์์ ์ฐ๊ฒฐ๋์ด ์๋ค๊ณ ํ์. 1๋ฒ ์ปดํจํฐ๊ฐ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๋ฉด ์ ๋ฐ์ด๋ฌ์ค๋ 2๋ฒ๊ณผ 5๋ฒ ์ปดํจํฐ๋ฅผ ๊ฑฐ์ณ 3๋ฒ๊ณผ 6๋ฒ ์ปดํจํฐ๊น์ง ์ ํ๋์ด 2, 3, 5, 6 ๋ค ๋์ ์ปดํจํฐ๋ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๊ฒ ๋๋ค. ํ์ง๋ง 4๋ฒ๊ณผ 7๋ฒ ์ปดํจํฐ๋ 1๋ฒ ์ปดํจํฐ์ ๋คํธ์ํฌ์์์ ์ฐ๊ฒฐ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ์ํฅ์ ๋ฐ์ง ์๋๋ค. ์ด๋ ๋ 1๋ฒ ์ปดํจํฐ๊ฐ ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ ธ๋ค. ์ปดํจํฐ์ ์์ ๋คํธ์ํฌ ์์์ ์๋ก ์ฐ๊ฒฐ๋์ด ์๋ ์ ๋ณด๊ฐ ์ฃผ์ด์ง ๋, 1๋ฒ ์ปดํจํฐ๋ฅผ ํตํด ์ ๋ฐ์ด๋ฌ์ค์ ๊ฑธ๋ฆฌ๊ฒ ๋๋ ์ปดํจํฐ์..
์ ์ก ๊ณ์ธต ํ๋กํ ์ฝ TCP UDP TCP (Transmission Control Protocol) ์ ์ก์ ์ ์ดํ๋ ๊ท์ฝ ์ฐ๊ฒฐํ ์๋น์ค๋ฅผ ์ง์ํ๋ ํ๋กํ ์ฝ IP๋ ํจํท์ ๋น ๋ฅด๊ฒ ์ ์ก๋ ํจํท์ TCP๋์ถ์ ํ๊ณ ๊ด๋ฆฌ TCP ์์ ์ ์กํ๋ ํจํท = Segment ํน์ง ์ฐ๊ฒฐ ์งํฅ ๋ฐฉ์์ผ๋ก ํจํท ๊ตํ ๋ฐฉ์ ์ฌ์ฉ (๊ฐ์ ํ์ X) ๋
ผ๋ฆฌ์ ๊ฒฝ๋ก๋ฅผ ๋ฐฐ์ 3-way handshaking์ผ๋ก ์ฐ๊ฒฐ์ ์ค์ & 4-way handshaking์ผ๋ก ํด์ ํ๋ฆ ๋ฐ ํผ์ก ์ ์ด ๋์ ์ ๋ขฐ์ฑ ์ ์ด์ค(Full-Duplex), ์ ๋์ (Point-to-Point ๋ฐฉ์) ๋ฐ์ดํฐ ์ ์ก ์์ ๋ณด์ฅ TCP header์์๋ checksum, ํ์ธ ์๋ต, ํ์-์์ ๋ฑ์ ํตํด ์ํ ๋จ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ ์ ๋ฐ๋์ ์ฐ๊ฒฐ์ด ๋์ด ์์ด์ผ ํต์ ๊ฐ๋ฅ 1..
OSI & TCP/IP์ ๊ฐ ๊ณ์ธต์ ํ์ ๊ณ์ธต์ ๊ธฐ๋ฅ์ ์ด์ฉํ๊ณ , ์์ ๊ณ์ธต์๊ฒ ๊ธฐ๋ฅ์ ์ ๊ณต ex ) HTTP(์์ฉ)๋ TCP(์ ์ก)์ IP(๋คํธ์ํฌ/์ธํฐ๋ท)๋ฅผ ์ด์ฉํ์ฌ ์๋ ์์๊ณ์ธต์ ํ๋กํ ์ฝ์ ์ํํธ์จ์ด๋ก, ํ์ ๊ณ์ธต์ ํ๋กํ ์ฝ์ ํ๋์จ์ด๋ก ๊ตฌํ OSI 7๊ณ์ธต ๋คํธ์ํฌ ํต์ ์ ํ์คํํ ๋ชจ๋ธ, ํต์ ์์คํ
์ 7๋จ๊ณ๋ก ๋๋์ด ์ค๋ช
์์ฉ ๊ณ์ธต์์ ๋ฐ์ดํฐ ์ก์์ ์ ์์ฒญํ๊ณ ํ์๊ณ์ธต์ ์์ฐจ์ ์ผ๋ก ์ ๋ฌ๋์ด ๋งจ ์๋ ์๋ ๋ฌผ๋ฆฌ ๊ณ์ธต์ ํตํด ์๋ ํธ์คํธ์ ์ ์ก ๊ณ์ธต์ ์ง๋ ๋๋ง๋ค ๊ฐ ๊ณ์ธต์์ Header๊ฐ ๋ถ๊ณ , ์์ ์ธก์์๋ ์ญ์์ผ๋ก Header๋ฅผ ๋ถ์ [1๊ณ์ธต] ๋ฌผ๋ฆฌ ํธ์คํธ๋ฅผ ์ ์ก๋งค์ฒด์ ์ฐ๊ฒฐํ๊ธฐ ์ํ ์ธํฐํ์ด์ค ๊ท์น๊ณผ ์ ์ก ๋งค์ฒด์ ํน์ฑ ๋ฐ์ดํฐ ์ ๊ธฐ์ ์ ํธ๋ก ๋ณํํ์ฌ ์ฃผ๊ณ ๋ฐ๊ธฐ๋ง ํ ๋ฟ ํฌ๊ฒ ์ ์ ๋งค์ฒด์ ๋ฌด์ ๋งค์ฒด๋ก..
๐ธ ๋คํธ์ํฌ ํ๋์จ์ด์ ์ธ ์ ์ก ๋งค์ฒด๋ฅผ ๋งค๊ฐ๋ก ์๋ก ์ฐ๊ฒฐ๋์ด ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๋ ์์คํ
์ ์ก ๋งค์ฒด๋ก ์ฐ๊ฒฐ๋ ์ฌ๋ฌ ์์คํ
์ด ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋, ํ๋๋ก ๋ฌถ๋ ๋จ์ ๋คํธ์ํฌ = ์์คํ
+ ์ ์ก๋งค์ฒด ๐ธ ์์คํ
๋ด๋ถ ๊ท์น์ ๋ฐ๋ผ ์์จ์ ์ผ๋ก ๋์ํ๋ ๋์ ์์ ๋ฌผ๋ฆฌ์ ๋์ : ์๋์ฐจ, ํ๋๋์คํฌ, ์ปดํจํฐ ๋ฑ ์ํํธ์จ์ด ๋์: ์ด์ฌ ์์คํ
, ์ด์ ์ฒด์ , ํ๋ก์ธ์ค ๋ฑ ๋
ธ๋ ์ปดํจํฐ ์ด๋ก ๋ถ์ผ์์ ํน์ ์์คํ
์ ๊ฐ๋ฆฌํค๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ฉ์ด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ๋ชจ๋ ์์คํ
๋
ธ๋ = ๋ผ์ฐํฐ + ํธ์คํธ ๋ผ์ฐํฐ ์ธํฐ๋ท ๋ด๋ถ๋ฅผ ๊ตฌ์ฑ ๋ฐ์ดํฐ ์ ์ก ๊ธฐ๋ฅ, ๋ฐ์ดํฐ ์ค๊ฐ ๊ธฐ๋ฅ ํธ์คํธ๋ค ์ฌ์ด์ ๋ฐ์ดํฐ ์ ์ก์ด ์ธํฐ๋ท ๋ด๋ถ์์ ์ต์ ์ ๊ฒฝ๋ก๋ฅผ ํตํด ์ด๋ํ๋๋ก ๊ตฌ์ฑ ํธ์คํธ ์ธํฐ๋ท ๋ฐ๊นฅ์ชฝ์ ๊ตฌ์ฑ ๋คํธ์ํฌ ์ ์ ์ฐฝ๊ตฌ ํธ..
Sliver 2. ์์ข
์ด ๋ง๋ค๊ธฐ ๐ ๋ฌธ์ ์๋ ๊ณผ ๊ฐ์ด ์ฌ๋ฌ๊ฐ์ ์ ์ฌ๊ฐํ์นธ๋ค๋ก ์ด๋ฃจ์ด์ง ์ ์ฌ๊ฐํ ๋ชจ์์ ์ข
์ด๊ฐ ์ฃผ์ด์ ธ ์๊ณ , ๊ฐ ์ ์ฌ๊ฐํ๋ค์ ํ์์์ผ๋ก ์น ํด์ ธ ์๊ฑฐ๋ ํ๋์์ผ๋ก ์น ํด์ ธ ์๋ค. ์ฃผ์ด์ง ์ข
์ด๋ฅผ ์ผ์ ํ ๊ท์น์ ๋ฐ๋ผ ์๋ผ์ ๋ค์ํ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง ์ ์ฌ๊ฐํ ๋ชจ์์ ํ์์ ๋๋ ํ๋์ ์์ข
์ด๋ฅผ ๋ง๋ค๋ ค๊ณ ํ๋ค. ์ ์ฒด ์ข
์ด์ ํฌ๊ธฐ๊ฐ N×N(N=2k, k๋ 1 ์ด์ 7 ์ดํ์ ์์ฐ์) ์ด๋ผ๋ฉด ์ข
์ด๋ฅผ ์๋ฅด๋ ๊ท์น์ ๋ค์๊ณผ ๊ฐ๋ค. ์ ์ฒด ์ข
์ด๊ฐ ๋ชจ๋ ๊ฐ์ ์์ผ๋ก ์น ํด์ ธ ์์ง ์์ผ๋ฉด ๊ฐ๋ก์ ์ธ๋ก๋ก ์ค๊ฐ ๋ถ๋ถ์ ์๋ผ์ ์ I, II, III, IV์ ๊ฐ์ด ๋๊ฐ์ ํฌ๊ธฐ์ ๋ค ๊ฐ์ N/2 × N/2์์ข
์ด๋ก ๋๋๋ค. ๋๋์ด์ง ์ข
์ด I, II, III, IV ๊ฐ๊ฐ์ ๋ํด์๋ ์์์์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ชจ๋ ๊ฐ์ ์์ผ๋ก ์น ํด์ ธ ์์ง..
15649๋ฒ: N๊ณผ M (1) ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ, ๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด์ผ ํ๋ค. ์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด www.acmicpc.net ๐ ๋ฌธ์ ์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ก์ ๋, ์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ธธ์ด๊ฐ M์ธ ์์ด์ ๋ชจ๋ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. 1๋ถํฐ N๊น์ง ์์ฐ์ ์ค์์ ์ค๋ณต ์์ด M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด ๐ ์
๋ ฅ ์ฒซ์งธ ์ค์ ์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ง๋ค. (1 ≤ M ≤ N ≤ 8) ๐ ์ถ๋ ฅ ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ, ๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด์ผ ํ๋ค. ์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด์ผ ํ๋ค. ๐ ์์ ..
๐ฑ ๋ฌธ์ 1260๋ฒ: DFS์ BFS ์ฒซ์งธ ์ค์ ์ ์ ์ ๊ฐ์ N(1 ≤ N ≤ 1,000), ๊ฐ์ ์ ๊ฐ์ M(1 ≤ M ≤ 10,000), ํ์์ ์์ํ ์ ์ ์ ๋ฒํธ V๊ฐ ์ฃผ์ด์ง๋ค. ๋ค์ M๊ฐ์ ์ค์๋ ๊ฐ์ ์ด ์ฐ๊ฒฐํ๋ ๋ ์ ์ ์ ๋ฒํธ๊ฐ ์ฃผ์ด์ง๋ค. ์ด๋ค ๋ ์ ์ ์ฌ www.acmicpc.net ๐ฑ ํด๊ฒฐ๊ณผ์ 1. DFS ์ BFS์ ๊ฐ๋
์ ๊ณต๋ถํ ์ดํ 2. ๊ทธ์ ๋ง๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค. ๐ฑ DFS (๊น์ด ์ฐ์ ํ์) ์ฌ๊ท๋ฅผ ํ๊ธฐ ๋๋ฌธ์ BFS ๋ณด๋ค ๋๋ฆฐ ๊ฒ์ด ํน์ง BFS์ ๋ฌ๋ฆฌ ์ด๋ค ๋
ธ๋๋ฅผ ๋ฐฉ๋ฌธํ๋์ง ์ฌ๋ถ๋ฅผ ๋ฐ๋์ ๊ฒ์ฌ ์๊ฐ ๋ณต์ก๋ LinkedList : O(N + E), N: ์ ์ ์, E: ๊ฐ์ ์ ํ๋ ฌ: O(N^2) ๐ฑ BFS (๋๋น ์ฐ์ ํ์) ์ต๋จ ๊ฒฝ๋ก, ์์์ ๊ฒฝ๋ก๋ฅผ ์ฐพ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ฌ๊ท X, Ite..
ํ๋ก๊ทธ๋๋จธ์ค ๋ฌธ์ ํ์ด๋ฅผ ํฐ์คํ ๋ฆฌ์์ ์์ฑํ๋ฉด ์๋๋ ์ด์ ์ฝ๋ฉ ํ
์คํธ ๋ฌธ์ ๋ฅผ ๋ธ๋ก๊ทธ์ ์์ฑํ๋ฉด ์ ๋๋ ์ด์ ์ฝ๋ฉ ํ
์คํธ ๋ฌธ์ ๋ฅผ ๋ธ๋ก๊ทธ์ ์ฌ๋ฆฌ๋ฉด ์ ๋๋ ์ด์ ๊ฐ๋ฐ ๋ธ๋ก๊ทธ๋ฅผ ์ด์ํ๋ฉด์ ์์ต์ ๊ทน๋ํํ๊ธฐ ์ํด ๋ค๋ฅธ ๋ธ๋ก๊ทธ๋ฅผ ํ๋ฐฉํ๋ฉด์ ์ด๋ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฃผ์ ๋ก ํฌ์คํ
ํ๋์ง, ๊ธ์ ์ด๋ป๊ฒ ์ developer-talk.tistory.com ๋ฒจ๋ก๊ทธ ํ๋ก๊ทธ๋๋จธ์ค๋ ๊ด๊ณ ๊ฐ ๋ค์ด๊ฐ ๋ธ๋ก๊ทธ์์๋ ๋ฌธ์ ์์ฑ์ด ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋๋จธ์ค ๋ฌธ์ ๋ ๊ด๊ณ ๊ฐ ๋ถ์ง ์๋ ์๋ ๋ฒจ๋ก๊ทธ์์ ์์ฑํ๊ณ ์ ํ๋ค. chaerlo127 (chaeng_ni) / ์์ฑ๊ธ - velog velog.io
๋ฌธ์ 6588๋ฒ: ๊ณจ๋๋ฐํ์ ์ถ์ธก ๊ฐ ํ
์คํธ ์ผ์ด์ค์ ๋ํด์, n = a + b ํํ๋ก ์ถ๋ ฅํ๋ค. ์ด๋, a์ b๋ ํ์ ์์์ด๋ค. ์ซ์์ ์ฐ์ฐ์๋ ๊ณต๋ฐฑ ํ๋๋ก ๊ตฌ๋ถ๋์ด์ ธ ์๋ค. ๋ง์ฝ, n์ ๋ง๋ค ์ ์๋ ๋ฐฉ๋ฒ์ด ์ฌ๋ฌ ๊ฐ์ง๋ผ๋ฉด, b-a๊ฐ ๊ฐ์ฅ ํฐ www.acmicpc.net import math import sys # ํ
์คํธ ์ผ์ด์ค ๊ฐฏ์ maxValue = 1000000 lists = [True] * (maxValue + 1) lists[0] = lists[1] = False # ์๋ผํ ์คํ
๋ค์ค์ ์ฒด for i in range(2, int(math.sqrt(maxValue) + 1)): if lists[i]: # 1. ์๊ฐ ์ด๊ณผ ๋์ ์ถ๊ฐํ ๋ด์ฉ => ํ ๋ฒ ํ์ธํ ๋ด์ฉ์ ๋ค์ ํ์ธํ์ง ์์๋๋จ ์๋๋ฉด ๊ฐ..