๐ ์ด์ฐ์ํ, ์ ๋ฐฐ์์ผ ํ ๊น?
์ด์ฐ์ํ(Discrete Mathematics)์ ์ปดํจํฐ ๊ณผํ์ ํต์ฌ ๊ธฐ์ด ํ๋ฌธ์ ๋๋ค. ์๊ณ ๋ฆฌ์ฆ, ๋ฐ์ดํฐ ๊ตฌ์กฐ, ์ํธํ, ์ธ๊ณต์ง๋ฅ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ ๋ชจ๋ IT ๋ถ์ผ์ ์ด๋ก ์ ํ ๋๋ฅผ ์ ๊ณตํ์ฃ . ์ฐ์์ ์ธ ๊ฐ์ ๋ค๋ฃจ๋ ๋ฏธ์ ๋ถํ๊ณผ ๋ฌ๋ฆฌ, **์ ์ ์๋ ๊ฐ๋ณ์ ์ธ ๊ฐ์ฒด(์ด์ฐ ๊ตฌ์กฐ)**๋ฅผ ์ฐ๊ตฌํฉ๋๋ค. ์ฆ, ์์ฐ์์ฒ๋ผ 1, 2, 3,... ์ ์ ์๋ ๋์(ํฝ์ , ๋คํธ์ํฌ ๋ ธ๋, ์ฝ๋ ๋ผ์ธ)์ ๋ถ์ํ๋ ๊ฒ์ด์ฃ .
์ปค๋ฎค๋ํฐ ์ค๋ฌธ์ ๋ฐ๋ฅด๋ฉด, ๊ฐ๋ฐ์๋ค์ 78%๊ฐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ์ ์ด์ฐ์ํ ์ง์์ด '๋งค์ฐ ๋์์ด ๋๋ค'๊ณ ์๋ตํ์ต๋๋ค. ํนํ FAANG(Facebook, Amazon, Apple, Netflix, Google) ๊ธฐ์ ๋ฉด์ ์์๋ ์กฐํฉ๋ก (Combinatorics)๊ณผ ์ ์๋ก (Number Theory) ๊ด๋ จ ๋ฌธ์ ๊ฐ ๋น๋ฒํ๊ฒ ์ถ์ ๋ฉ๋๋ค.
์ด ๊ฐ์๋ ๋ฐฉ๋ํ ์ด์ฐ์ํ ์์ญ ์ค ์ค๋ฌด ์ ์ฉ๋๊ฐ ๋์ 6๋ ์ฃผ์ ์ ์ง์คํฉ๋๋ค: ์์ด(Permutations), ๊ท์น์ ๊ณฑ/ํฉ(Rule of Product/Sum), ํฌํจ-๋ฐฐ์ ์๋ฆฌ(Inclusion-Exclusion), ์ ์๋ก ๊ธฐ์ด, ์กฐํฉ(Combinations), ์ค๊ตญ์ธ์ ๋๋จธ์ง ์ ๋ฆฌ(Chinese Remainder Theorem).

๐ ํ์ต ์ค๋น: ํต์ฌ ๊ฐ๋ ๊ณผ ๋๊ตฌ
์ด์ฐ์ํ์ ์ ์์ ๋ฒ์
์ด์ฐ์ํ์ '์ ์ ์๋ ๊ตฌ์กฐ'์ ์ํ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ๋์งํธ ์ด๋ฏธ์ง๋ ์ ํํ ํฝ์ ์ ์งํฉ์ด๊ณ , ๊ฐ ํฝ์ ์ ํ์ ๋ ์์ ์ธํธ์์ ๊ฐ์ ๊ฐ์ง๋๋ค. ์ด๋ฐ ๋ฐ์ดํฐ์ ๋ชจ๋ธ๋ง, ์์ถ, ๋ถ์์ ์ด์ฐ์ํ์ด ํ์์ ์ด์ฃ .
์ฃผ์ ํ์ ๋ถ์ผ:
- ์กฐํฉ๋ก (Combinatorics): ๊ฐ์ฒด์ ๋ฐฐ์ด, ์ ํ, ๊ณ์ ๋ฐฉ๋ฒ
- ์ ์๋ก (Number Theory): ์ ์์ ์ฑ์ง, ํนํ ์์ ์ฐ๊ตฌ
- ๊ทธ๋ํ ์ด๋ก (Graph Theory): ๋ ธ๋์ ๊ฐ์ ์ผ๋ก ํํ๋ ๊ด๊ณ ๋ถ์
- ๋ ผ๋ฆฌ(Logic): ๋ช ์ ์ ์ถ๋ก ์ ํ์์ ์ฒด๊ณ
- ์ํธํ(Cryptography): ์์ ํ ํต์ ์ ์ํ ์ํ์ ๊ธฐ๋ฒ
ํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ ์ค์
์ด๋ก ํ์ต๊ณผ ํจ๊ป **ํ์ด์ฌ(Python)**์ ํ์ฉํ ์ค์ต์ ์งํํฉ๋๋ค. itertools, math ๋ชจ๋์ ์กฐํฉ ํจ์์ ์ํ ํจ์๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๋ฏ๋ก, ๊ธฐ๋ณธ์ ์ธ ํ์ด์ฌ ์ค์น๋ง์ผ๋ก ์ถฉ๋ถํฉ๋๋ค.
๊ด๋ จ ์๋ฃ๋ฅผ ๋ ๊น์ด ํ์ตํ๋ ค๋ฉด OpenAI, ํ ๋ฃจ์๋ค์ด์ ํด๊ฒฐ๋ฒ ์ ์ ์ธ์ด๋ชจ๋ธ์ด ๊ฑฐ์ง๋งํ๋ ์ง์ง ์ด์ ์์ ๋ ผ๋ฆฌ์ ์ถ๋ก ์ ์ค์์ฑ์ ํ์ธํ ์ ์์ต๋๋ค.

โ๏ธ ํต์ฌ ์ด๋ก ๊ณผ ํ์ด์ฌ ๊ตฌํ
1. ์์ด(Permutations)๊ณผ ์กฐํฉ(Combinations)
์์ด์ ์์๊ฐ ์ค์ํ ๋ฐฐ์ด, ์กฐํฉ์ ์์๊ฐ ๋ฌด๊ดํ ์ ํ์ ๋๋ค. n๊ฐ ์ค r๊ฐ๋ฅผ ์ ํํ ๋:
- ์์ด ์: P(n, r) = n! / (n-r)!
- ์กฐํฉ ์: C(n, r) = n! / (r! ร (n-r)!)
| ๊ฐ๋ | ๊ณต์ | ์์ (n=5, r=3) | ํ์ด์ฌ ์ฝ๋ |
|---|---|---|---|
| ์์ด | n!/(n-r)! | 5!/(5-3)! = 60 | from itertools import permutations |
| ์กฐํฉ | n!/(r!(n-r)!) | 5!/(3!2!) = 10 | from itertools import combinations |
| ์ค๋ณต์์ด | nสณ | 5ยณ = 125 | ์ง์ ๊ตฌํ ํ์ |
| ์ค๋ณต์กฐํฉ | H(n,r)=C(n+r-1,r) | C(5+3-1,3)=35 | from itertools import combinations_with_replacement |
2. ์ ์๋ก ๊ธฐ์ด: ์์์ ์ต๋๊ณต์ฝ์
์์(Prime Number) ํ๋ณ์ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด(Sieve of Eratosthenes) ์๊ณ ๋ฆฌ์ฆ์ด ํจ์จ์ ์ ๋๋ค. ์๊ฐ ๋ณต์ก๋๋ O(n log log n)์ ๋๋ค.
# ์๋ผํ ์คํ
๋ค์ค์ ์ฒด ๊ตฌํ
def sieve_of_eratosthenes(limit):
is_prime = [True] * (limit + 1)
is_prime[0:2] = [False, False]
for i in range(2, int(limit**0.5) + 1):
if is_prime[i]:
for j in range(i*i, limit + 1, i):
is_prime[j] = False
return [i for i, prime in enumerate(is_prime) if prime]
์ต๋๊ณต์ฝ์(GCD)๋ **์ ํด๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ(Euclidean Algorithm)**์ผ๋ก ๊ณ์ฐํฉ๋๋ค. 3000์๋ฆฌ ์ด์์ ํฐ ์์๋ ์ ์ฉ ๊ฐ๋ฅํ ๋ก๊ทธ ์๊ฐ ๋ณต์ก๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
3. ํฌํจ-๋ฐฐ์ ์๋ฆฌ(Inclusion-Exclusion Principle)
ํฉ์งํฉ์ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ ๋ ์ฌ์ฉํ๋ ๊ณต์์ ๋๋ค. 3๊ฐ ์งํฉ A, B, C์ ๊ฒฝ์ฐ: |A โช B โช C| = |A| + |B| + |C| - |A โฉ B| - |A โฉ C| - |B โฉ C| + |A โฉ B โฉ C|
์ด ์๋ฆฌ๋ ๋ณต์กํ ๊ณ์ ๋ฌธ์ ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ํด๊ฒฐํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด, 1๋ถํฐ 1000๊น์ง 2, 3, 5 ์ค ์ ์ด๋ ํ๋๋ก ๋๋์ด์ง๋ ์์ ๊ฐ์๋:
- 2์ ๋ฐฐ์: 500๊ฐ
- 3์ ๋ฐฐ์: 333๊ฐ
- 5์ ๋ฐฐ์: 200๊ฐ
- 2์ 3์ ๊ณต๋ฐฐ์: 166๊ฐ
- 2์ 5์ ๊ณต๋ฐฐ์: 100๊ฐ
- 3๊ณผ 5์ ๊ณต๋ฐฐ์: 66๊ฐ
- 2,3,5์ ๊ณต๋ฐฐ์: 33๊ฐ
- ๊ฒฐ๊ณผ: 500+333+200-166-100-66+33 = 734๊ฐ

๐ฏ ํ์ต ์์ฝ๊ณผ ์ค์ ์ ์ฉ ๊ฐ์ด๋
ํต์ฌ ํฌ์ธํธ ์ ๋ฆฌ
- ์ด์ฐ์ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ธ์ด์ ๋๋ค. ๋ณต์ก๋ ๋ถ์, ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ค๊ณ, ์ํธ ์์คํ ๊ตฌํ์ ์ง์ ์ ์ผ๋ก ํ์ฉ๋ฉ๋๋ค.
- ์กฐํฉ๋ก ์ ๋ฌธ์ ํด๊ฒฐ์ ํ์ ์ ๊ณตํฉ๋๋ค. ๊ฐ๋ฅํ ๊ฒฝ์ฐ์ ์๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์ธ๋ ๋ฐฉ๋ฒ์ ์ตํ๋ฉด, ๋ธ๋ฃจํธ ํฌ์ค ์ ๊ทผ๋ฒ๋ณด๋ค ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ณํ ์ ์์ต๋๋ค.
- ์ ์๋ก ์ ํ๋ ์ํธํ์ ๊ธฐ๋ฐ์ ๋๋ค. RSA ์ํธํ๋ ํฐ ์์์ ๊ณฑ์ ์ธ์๋ถํดํ๋ ๊ฒ์ด ์ด๋ ต๋ค๋ ์ฌ์ค์ ๊ธฐ๋ฐํฉ๋๋ค.
์ค์ ์ ์ฉ ์ฌ๋ก
- ์น ๊ฐ๋ฐ: URL ๊ฒฝ๋ก ์์ฑ(์์ด), ์ฌ์ฉ์ ๊ถํ ์กฐํฉ(์กฐํฉ)
- ๋ฐ์ดํฐ ๊ณผํ: ํน์ง ์ ํ(์กฐํฉ), ํ๋ฅ ๊ณ์ฐ(ํฌํจ-๋ฐฐ์ )
- ๋ณด์: ํค ์์ฑ(์์), ํด์ ํจ์(๋ชจ๋๋ฌ ์ฐ์ฐ)
- ๊ฒ์ ๊ฐ๋ฐ: ์์ดํ ๋๋กญ ํ๋ฅ , ์บ๋ฆญํฐ ๋น๋ ๋ค์์ฑ
๋ค์ ํ์ต ๋จ๊ณ
์ด์ฐ์ํ์ ๊ธฐ์ด๋ฅผ ๋ค์ก๋ค๋ฉด, **๊ทธ๋ํ ์ด๋ก (Graph Theory)**๊ณผ **๋์ ํ๋ก๊ทธ๋๋ฐ(Dynamic Programming)**์ผ๋ก ๋์๊ฐ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํนํ ๋คํธ์ํฌ ๋ถ์๊ณผ ์ต์ ํ ๋ฌธ์ ํด๊ฒฐ์ ํ์์ ์ธ ๋ถ์ผ์ ๋๋ค.
AI ์๋์ ์ํ์ ์ฌ๊ณ ๋ ฅ์ด ๋์ฑ ์ค์ํด์ก์ต๋๋ค. ๐ฏ AI ์๋์ ์ฝ๋ฉ์ ๊ผญ ๋ฐฐ์์ผ ํ๋ ์ง์ง ์ด์ | ๋ฐ์ด๋ธ ์ฝ๋ฉ์ ํจ์ ๊ณผ ๊ฐ๋ฐ์ ์ญ๋์์ ๋ ผ๋ฆฌ์ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ ๊ฐ์น๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
ํ์ต ํ: ์ด๋ก ํ์ต๊ณผ ๋์์ LeetCode๋ ๋ฐฑ์ค์ ์กฐํฉ๋ก , ์ ์๋ก ํ๊ทธ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด์ธ์. ๊ฐ๋ ์ ์ฉ ๋ฅ๋ ฅ์ด ํฌ๊ฒ ํฅ์๋ฉ๋๋ค. ์ฃผ๋น 3-5๋ฌธ์ ํ์ด๋ฅผ ๋ชฉํ๋ก ์ผ๋ ๊ฒ์ด ํจ๊ณผ์ ์ ๋๋ค.
