πŸ“ŒΒ κ΅¬ν•΄μ•Ό ν•˜λŠ” μ •λ‹΅

N개의 단어λ₯Ό μ •λ ¬ν•˜μ—¬ 좜λ ₯ν•΄μ•Ό ν•˜λŠ”λ° 이 λ•Œ μ •λ ¬ 쑰건은 μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

단, μ€‘λ³΅λœ λ‹¨μ–΄λŠ” μ œκ±°ν•˜κ³  좜λ ₯ν•΄μ•Ό ν•©λ‹ˆλ‹€.

πŸ“ŒΒ ν’€μ΄ ν•˜κΈ°

1οΈβƒ£Β μ€‘λ³΅λœ 단어 μ œκ±°ν•˜κΈ°

μ–΄λ–€ λ°°μ—΄μ—μ„œ 쀑볡을 μ œκ±°ν•˜λŠ” 방법은 μ–Έμ–΄λ§ˆλ‹€ λ‹€λ¦…λ‹ˆλ‹€.

unique ν•¨μˆ˜ 등을 μ œκ³΅ν•˜λŠ” 언어듀도 μžˆμŠ΅λ‹ˆλ‹€.

ν•˜μ§€λ§Œ 별도 라이브러리 / ν•¨μˆ˜κ°€ μ—†λ‹€λ©΄ , set 자료ꡬ쑰λ₯Ό ν™œμš©ν•˜λŠ” 것도 쒋은 λ°©λ²•μž…λ‹ˆλ‹€.

μž…λ ₯받은 λͺ¨λ“  단어λ₯Ό set에 λ„£μ–΄ μ€‘λ³΅λœ 단어λ₯Ό μ œκ±°ν•©λ‹ˆλ‹€.

set에 μ›μ†Œ ν•˜λ‚˜λ₯Ό μΆ”κ°€ν•˜λŠ” μ‹œκ°„λ³΅μž‘λ„λŠ” O(1)μž…λ‹ˆλ‹€.

(정리가 잘 λ˜μ–΄ μžˆλŠ” 글이 μžˆμ–΄ ν•¨κ»˜ κ³΅μœ λ“œλ¦½λ‹ˆλ‹€.)

Python λ‚΄μž₯ 자료ꡬ쑰의 μ‹œκ°„λ³΅μž‘λ„

μš°λ¦¬λŠ” N개의 단어듀을 set에 λ„£μ–΄μ•Ό ν•˜λ―€λ‘œ , 총 μ‹œκ°„λ³΅μž‘λ„λŠ” O(N)이 λ˜κ² λ„€μš”

λ¬Έμ œμ—μ„œ N은 μ΅œλŒ€ 20,000개둜 μ—°μ‚° 20,000λ²ˆμ€ μ‹œκ°„ 2μ΄ˆλ‚΄μ— μΆ©λΆ„νžˆ κ°€λŠ₯ν•œ μ—°μ‚° κ°œμˆ˜μž…λ‹ˆλ‹€.

2️⃣ 쑰건에 맞게 μ •λ ¬ν•˜κΈ°

두 가지 μ •λ ¬ 쑰건이 있고, μ •λ ¬μ˜ μš°μ„ μˆœμœ„κ°€ μžˆμŠ΅λ‹ˆλ‹€.