๐ฉ 221028 TIL
๋ฐฑ์ค
Class3
- [Silver5] 1676๋ฒ_ํฉํ ๋ฆฌ์ผ 0์ ๊ฐ์
- [Silver5] 11723๋ฒ_์งํฉ
- [Silver4] 1764๋ฒ_๋ฃ๋ณด์ก
- [Silver4] 17129๋ฒ_๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ
- [Silver3] 2579๋ฒ_๊ณ๋จ์ค๋ฅด๊ธฐ
ํ๋ก๊ทธ๋๋จธ์ค
Level2
- N๊ฐ์ ์ต์ ๊ณต๋ฐฐ์
CS
๋คํธ์ํฌ ๊ธฐ์ด
- ๋คํธ์ํฌ๋ ๋ ธ๋์ ๋งํฌ๊ฐ ์๋ก ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉฐ ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํ๋ ์งํฉ์ ์๋ฏธ
- ์ฒ๋ฆฌ๋๊ณผ ์ง์ฐ ์๊ฐ
- ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ถํ ๋๋ '์ข์'๋คํธ์ํฌ๋ก ๋ง๋๋ ๊ฒ์ด ์ค์
- ์ข์ ๋คํธ์ํฌ๋ ๋ง์ ์ฒ๋ฆฌ๋์ ์ฒ๋ฆฌํ ์ ์์ผ๋ฉฐ ์ง์ฐ ์๊ฐ์ด ์งง๊ณ ์ฅ์ ๋น๋๊ฐ ์ ์ผ๋ฉฐ ์ข์ ๋ณด์์ ๊ฐ์ถ ๋คํธ์ํฌ
- ์ฒ๋ฆฌ๋์ด๋ ๋งํฌ๋ฅผ ํตํด ์ ๋ฌ๋๋ ๋จ์ ์๊ฐ๋น ๋ฐ์ดํฐ์์ ๋งํ๋ค.
- ์ง์ฐ์๊ฐ์ด๋ ์์ฒญ์ด ์ฒ๋ฆฌ๋๋ ์๊ฐ์ ๋งํ๋ฉฐ ์ด๋ค ๋ฉ์์ง๊ฐ ๋ ์ฅ์น ์ฌ์ด๋ฅผ ์๋ณตํ๋๋ฐ ๊ฑธ๋ฆฐ ์๊ฐ
- ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ถํ ๋๋ '์ข์'๋คํธ์ํฌ๋ก ๋ง๋๋ ๊ฒ์ด ์ค์
๋คํธ์ํฌ ํ ํด๋ก์ง
- ๋คํธ์ํฌ ํ ํด๋ก์ง๋ ๋ ธ๋์ ๋งํฌ๊ฐ ์ด๋ป๊ฒ ๋ฐฐ์น๋์ด ์๋์ง์ ๋ํ ๋ฐฉ์์ด์ ์ฐ๊ฒฐ ํํ๋ฅผ ์๋ฏธ
- ํธ๋ฆฌ ํ ํด๋ก์ง๋ ธ๋์ ์ถ๊ฐ, ์ญ์ ๊ฐ ์ฌ์ฐ๋ฉฐ ํน์ ๋ ธ๋์ ํธ๋ํฝ์ด ์ง์ค ๋ ๋ ํ์ ๋ ธ๋์ ์ํฅ์ ๋ผ์น ์ ์๋ค.
- ๊ณ์ธตํ ํ ํด๋ก์ง๋ผ๊ณ ํ๋ฉฐ ํธ๋ฆฌ ํํ๋ก ๋ฐฐ์นํ ๋คํธ์ํฌ ๊ตฌ์ฑ
- ๋ฒ์ค ํ ํด๋ก์ง
- ๋ฒ์ค(bus) ํ ํด๋ก์ง๋ ์ค์ ํต์ ํ์ ํ๋์ ์ฌ๋ฌ๊ฐ์ ๋ ธ๋๊ฐ ์ฐ๊ฒฐ๋์ด ๊ณต์ ํ๋ ๋คํธ์ํฌ ๊ตฌ์ฑ์ ๋งํ๋ฉฐ ๊ทผ๊ฑฐ๋ฆฌ ํต์ ๋ง(LAN)์์ ์ฌ์ฉ
- ์ค์น ๋น์ฉ์ด ์ ๊ณ ์ ๋ขฐ์ฑ์ด ์ฐ์ํ๋ฉฐ ์ค์ ํต์ ํ์ ์ ๋ ธ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ๊ธฐ ์ฝ์ง๋ง ์คํธํ์ด ๊ฐ๋ฅํ ๋ฌธ์ ์ ์ด ์๋ค.
- ์คํ ํ ํด๋ก์ง๋ ธ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์๋ฌ๋ฅผ ํ์งํ๊ธฐ ์ฝ๊ณ ํจํท์ ์ถฉ๋ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์ ๋ค. ๋ํ ์ด๋ ํ ๋ ธ๋์ ์ฅ์ ๊ฐ ๋ฐ์ํด๋ ์ฝ๊ฒ ์๋ฌ๋ฅผ ๋ฐ๊ฒฌํ ์ ์์ผ๋ฉฐ ์ฅ์ ๋ ธ๋๊ฐ ์ค์ ๋ ธ๋๊ฐ ์๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ๋ ธ๋์ ์ํฅ์ ๋ผ์น๋ ๊ฒ์ด ์ ๋ค. ํ์ง๋ง ์ค์ ๋ ธ๋์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉฐ ใด์ ์ฒด ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ ์ ์๊ณ ์ค์น ๋น์ฉ์ด ๊ณ ๊ฐ์ด๋ค.
- ์คํ ํ ํด๋ก์ง๋ ์ค์์ ์๋ ๋ ธ๋์ ๋ชจ๋ ์ฐ๊ฒฐ๋ ๋คํธ์ํฌ ๊ตฌ์ฑ
- ๋งํ ํ ํด๋ก์ง๋ฐ์ดํฐ๋ ๋ ธ๋์์ ๋ ธ๋๋ก ์ด๋์ ํ๊ฒ ๋๋ฉฐ, ๊ฐ๊ฐ์ ๋ ธ๋๋ ๊ณ ๋ฆฌ ๋ชจ์์ ๊ธธ์ ํตํด ํจํท์ ์ฒ๋ฆฌ
- ๋ ธ๋ ์๊ฐ ์ฆ๊ฐ๋์ด๋ ๋คํธ์ํฌ์์ ์์ค์ด ๊ฑฐ์ ์๊ณ ์ถฉ๋์ด ๋ฐ์๋๋ ๊ฐ๋ฅ์ฑ์ด ์ ๊ณ ๋ ธ๋์ ๊ณ ์ฅ ๋ฐ๊ฒฌ์ ์ฝ๊ฒ ์ฐพ์ ์ ์๋ค. ํ์ง๋ง ๋คํธ์ํฌ ๊ตฌ์ฑ ๋ณ๊ฒฝ์ด ์ด๋ ต๊ณ ํ์ ์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉด ์ ์ฒด ๋คํธ์ํฌ์ ์ํฅ์ ํฌ๊ฒ ๋ผ์น๋ ๋จ์ ์ด ์๋ค.
- ๋งํ ํ ํด๋ก์ง๋ ๊ฐ๊ฐ์ ๋ ธ๋๊ฐ ์ ์์ ๋ ๋ ธ๋์ ์ฐ๊ฒฐํ์ฌ ์ ์ฒด์ ์ผ๋ก ๊ณ ๋ฆฌ์ฒ๋ผ ํ๋์ ์ฐ์๋ ๊ธธ์ ํตํด ํต์ ์ ํ๋ ๋ง ๊ตฌ์ฑ ๋ฐฉ์
- ๋ฉ์ ํ ํด๋ก์งํ ๋จ๋ง ์ฅ์น์ ์ฅ์ ๊ฐ ๋ฐ์ํด๋ ์ฌ๋ฌ๊ฐ์ ๊ฒฝ๋ก๊ฐ ์กด์ฌํ๋ฏ๋ก ๋คํธ์ํฌ๋ฅผ ๊ณ์ ์ฌ์ฉํ ์ ์๊ณ ํธ๋ํฝ๋ ๋ถ์ฐ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค. ํ์ง๋ง ๋ ธ๋์ ์ถ๊ฐ๊ฐ ์ด๋ ต๊ณ ๊ตฌ์ถซ ๋น์ฉ๊ณผ ์ด์ฉ ๋น์ฉ์ด ๊ณ ๊ฐ์ธ ๋จ์ ์ด ์๋ค.
- ๋ฉ์ ํ ํด๋ก์ง๋ ๋งํ ํ ํด๋ก์ง๋ผ๊ณ ๋ ํ๋ฉฐ ๊ทธ๋ฌผ๋ง์ฒ๋ผ ์ฐ๊ฒฐ๋์ด ์๋ ๊ตฌ์กฐ
๋ณ๋ชฉ ํ์
- ๋คํธ์ํฌ์ ๊ตฌ์กฐ๋ผ๊ณ ๋ ์ผ์ปซ๋ ํ ํด๋ก์ง๊ฐ ์ค์ํ ์ด์ ๋ ๋ณ๋ชฉ ํ์์ ์ฐพ์ ๋ ์ค์ํ ๊ธฐ์ค์ด ๋๊ธฐ ๋๋ฌธ
- ๋ณ๋ชฉ ํ์์ ์ ์ฒด ์์คํ ์ ์ฑ๋ฅ์ด๋ ์ฉ๋์ด ํ๋์ ๊ตฌ์ฑ ์์๋ก ์ธํด ์ ํ์ ๋ฐ๋ ํ์
๋คํธ์ํฌ์ ๋ถ๋ฅ
- WAN
- ๊ด์ญ ๋คํธ์ํฌ๋ฅผ ์๋ฏธํ๋ฉฐ ๊ตญ๊ฐ ๋๋ ๋๋ฅ ๊ฐ์ ๋ ๋์ ์ง์ญ์์ ์ด์
- ์ ์ก ์๋๋ ๋ฎ์ผ๋ฉฐ MAN๋ณด๋ค ํผ์ก
- MAN
- ๋๋์ ์ง์ญ ๋คํธ์ํฌ๋ฅผ ๋ํ๋ด๋ฉฐ ๋์ ๊ฐ์ ๋์ ์ง์ญ์์ ์ด์
- ์ ์ก ์๋๋ ํ๊ท ์ด๋ฉฐ LAN๋ณด๋ค๋ ํผ์ก
- LAN
- ๊ทผ๊ฑฐ๋ฆฌ ํต์ ๋ง์ ์๋ฏธํ๋ฉฐ ์ข์ ๊ณต๊ฐ์์ ์ด์
- ์ ์ก ์๋๊ฐ ๋น ๋ฅด๊ณ ํผ์กํ์ง ์์
- WAN
๋คํธ์ํฌ ์ฑ๋ฅ ๋ถ์ ๋ช ๋ น์ด
- ๋คํธ์ํฌ ๋ณ๋ชฉ ํ์ฅ์ ์ฃผ๋ ์์ธ
- ๋คํธ์ํฌ ๋์ญํญ
- ๋คํธ์ํฌ ํ ํด๋ก์ง
- ์๋ฒ CPU, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋
- ๋นํจ์จ์ ์ธ ๋คํธ์ํฌ ๊ตฌ์ฑ
- ping(Packet INternet Groper)
- ๋คํธ์ํฌ ์ํ๋ฅผ ํ์ธํ๋ ค๋ ๋์ ๋ ธ๋๋ฅผ ํฅํด ์ผ์ ํฌ๊ธฐ์ ํจํท์ ์ ์กํ๋ ๋ช ๋ น์ด
- ํด๋น ๋ ธ๋์ ํจํท ์์ ์ํ / ๋๋ฌํ๊ธฐ๊น์ง ์๊ฐ ๋ฑ์ ์ ์ ์์
- TCP/IP ํ๋กํ ์ฝ ์ค ICMP ํ๋กํ ์ฝ์ ํตํด ๋์
- netstat
- ์ ์๋์ด ์๋ ์๋น์ค๋ค์ ๋คํธ์ํฌ ์ํ๋ฅผ ํ์ํ๋๋ฐ ์ฌ์ฉ
- ๋คํธ์ํฌ ์ ์, ๋ผ์ฐํ ํ ์ด๋ธ, ๋คํธ์ํฌ ํ๋กํ ์ฝ ๋ฑ ๋ฆฌ์คํธ๋ฅผ ๋ณด์ฌ์ค
- ์ฃผ๋ก ์๋น์ค์ ํฌํธ๊ฐ ์ด๋ ค ์๋์ง ํ์ธํ ๋ ์ฌ์ฉ
- nslookup
- DNS์ ๊ด๋ จ๋ ๋ด์ฉ์ ํ์ธํ๊ธฐ ์ํด ์ฐ๋ ๋ช ๋ น์ด
- ํน์ ๋๋ฉ์ธ์ ๋งคํ๋ IP๋ฅผ ํ์ธํ๊ธฐ ์ํด ์ฌ์ฉ
- tracert (Window)/ traceroute (Linux)
- ๋ชฉ์ ์ง ๋ ธ๋๊น์ง ๋คํธ์ํฌ ๊ฒฝ๋ก๋ฅผ ํ์ธํ ๋ ์ฌ์ฉํ๋ ๋ช ๋ น์ด
- ๋ชฉ์ ์ง ๋ ธ๋๊น์ง ๊ตฌ๊ฐ๋ค ์ค ์ด๋ ๊ตฌ๊ฐ์์ ์๋ต ์๊ฐ์ด๋๋ ค์ง๋์ง ๋ฑ์ ํ์ธํ ์ ์์
- ๋คํธ์ํฌ ๋ณ๋ชฉ ํ์ฅ์ ์ฃผ๋ ์์ธ
์ค๋ ๋ฐฐ์ด ๋ด์ฉ
- ์งํฉ์๋ฃํ set
- ์์๊ฐ ์๋ค
- ์ค๋ณต์ ํ์ฉํ์ง ์๋๋ค.
- ๊ต์งํฉ, ํฉ์งํฉ, ์ฐจ์งํฉ ๊ตฌํ๊ธฐ
>>> s1 = set([1, 2, 3, 4, 5, 6])
>>> s2 = set([4, 5, 6, 7, 8, 9])
# ๊ต์งํฉ
>>> s1 & s2
{4, 5, 6}
# ํฉ์งํฉ
>>> s1 | s2
{1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> s1.union(s2) # union ํจ์ ์ฌ์ฉ
{1, 2, 3, 4, 5, 6, 7, 8, 9}
# ์ฐจ์งํฉ
>>> s1 - s2
{1, 2, 3}
>>> s2 - s1
{8, 9, 7}
>>> s1.difference(s2) # difference ํจ์ ์ฌ์ฉ
{1, 2, 3}
>>> s2.difference(s1)
{8, 9, 7}
- ์งํฉ ์๋ฃํ ๊ด๋ จ ํจ์๋ค
- add
- ๊ฐ 1๊ฐ ์ถ๊ฐํ๊ธฐ
- update
- ๊ฐ ์ฌ๋ฌ๊ฐ ์ถ๊ฐํ๊ธฐ
- remove
- ํน์ ๊ฐ ์ ๊ฑฐํ๊ธฐ
- add
# add
>>> s1 = set([1, 2, 3])
>>> s1.add(4)
>>> s1
{1, 2, 3, 4}
# update
>>> s1 = set([1, 2, 3])
>>> s1.update([4, 5, 6])
>>> s1
{1, 2, 3, 4, 5, 6}
# remove
>>> s1 = set([1, 2, 3])
>>> s1.remove(2)
>>> s1
{1, 3}
DP(Dynamic Programming) ๋์ ๊ฒํ๋ฒ
- DP๋ ๊ธฐ๋ณธ์ ์ธ ์์ด๋์ด๋กํ๋์ ํฐ ๋ฌธ์ ๋ฅผ ์ฌ๋ฌ ๊ฐ์ ์์ ๋ฌธ์ ๋ก ๋๋์ด์ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ์ฌ ๋ค์ ํฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ํน์ ํ ์๊ณ ๋ฆฌ์ฆ์ด ์๋ ํ๋์ ๋ฌธ์ ํด๊ฒฐ ํจ๋ฌ๋ค์์ผ๋ก ๋ณผ ์ ์๋ค.
- ์ฐ๋ ์ด์
- ์ผ๋ฐ์ ์ธ ์ฌ๊ท๋ฅผ ๋จ์ํ ์ฌ์ฉ ์ ๋์ผํ ์์ ๋ฌธ์ ๋ค์ด ์ฌ๋ฌ๋ฒ ๋ฐ๋ณต๋์ด ๋นํจ์จ์ ์ธ ๊ณ์ฐ์ด ๋ ์ ์๋ค.
- DP์ ์ฌ์ฉ ์กฐ๊ฑด
- 1_Overlapping Subproblems(๊ฒน์น๋ ๋ถ๋ถ ๋ฌธ์ )
- DP๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ๋๋๊ณ ๊ทธ ๋ฌธ์ ์ ๊ฒฐ๊ณผ ๊ฐ์ ์ฌํ์ฉํ์ฌ ์ ์ฒด ๋ต์ ๊ตฌํ๋ค. ๊ทธ๋์ ๋์ผํ ์์ ๋ฌธ์ ๋ค์ด ๋ฐ๋ณตํ์ฌ ๋ํ๋๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- 2_Optimal Substructure(์ต์ ๋ถ๋ถ ๊ตฌ์กฐ)
- ๋ถ๋ถ ๋ฌธ์ ์ ์ต์ ๊ฒฐ๊ณผ ๊ฐ์ ์ฌ์ฉํด ์ ์ฒด ๋ฌธ์ ์ ์ต์ ๊ฒฐ๊ณผ๋ฅผ ๋ผ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธ
- ํน์ ๋ฌธ์ ์ ์ ๋ต์ ๋ฌธ์ ์ ํฌ๊ธฐ์ ์๊ด์์ด ํญ์ ๋์ผ
- 1_Overlapping Subproblems(๊ฒน์น๋ ๋ถ๋ถ ๋ฌธ์ )
- DP ์ฌ์ฉํ๊ธฐ
1. DP๋ก ํ ์ ์๋ ๋ฌธ์ ์ธ์ง ํ์ธ``3. ๋ณ์ ๊ฐ ๊ด๊ณ์ ๋ง๋ค๊ธฐ(์ ํ์)``6. ๊ตฌํํ๊ธฐ
4. ๋ฉ๋ชจํ๊ธฐ(Memoization or tabulation)
5. ๊ธฐ์ ์ํ ํ์ ํ๊ธฐ
2. ๋ฌธ์ ์ ๋ณ์ ํ์
'๐ฉ TIL[Today I Learned' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ฉ 221031 TIL[Today I Learned] (0) | 2022.10.31 |
---|---|
๐ฉ 221030 TIL[Today I Learned] (0) | 2022.10.31 |
๐ฉ 221029 TIL[Today I Learned] (0) | 2022.10.30 |
๐ฉ 221027 TIL[Today I Learned] (0) | 2022.10.28 |
๐ฉ 221026 TIL[Today I Learned] (0) | 2022.10.28 |