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

μš°λ¦¬λŠ” λͺ¨λ“  μ‚¬λžŒλ“€μ˜ 덩치 λ“±μˆ˜ 즉, μžμ‹ λ³΄λ‹€ λ©μΉ˜κ°€ 큰 μ‚¬λžŒ 수 + 1의 값을 ꡬ해야 ν•©λ‹ˆλ‹€.

μ΄λ•Œ β€˜Aκ°€ B보닀 λ©μΉ˜κ°€ 크닀’ 라고 νŒλ‹¨ν•˜λŠ” 쑰건은 μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

β†’ X>P Y > Q

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

1️⃣ λͺ¨λ“  μ‚¬λžŒμ˜ 덩치 λ“±μˆ˜ κ΅¬ν•˜κΈ°

덩치 λ“±μˆ˜λ₯Ό κ΅¬ν•˜κΈ° μœ„ν•΄μ„œλŠ” λͺ¨λ“  μ‚¬λžŒλ“€κ³Ό ν•œλ²ˆμ”© μžμ‹ μ„ 비ꡐ해야 ν•©λ‹ˆλ‹€.

즉, Nλͺ…μ˜ μ‚¬λžŒμ΄ μžˆλ‹€λ©΄ N-1번의 비ꡐ가 ν•„μš”ν•˜κ² μ£ .

μ‹œκ°„λ³΅μž‘λ„λŠ” O(N) * O(N-1) 즉, O(N^2)κ°€ λ©λ‹ˆλ‹€.

μ—¬κΈ°μ„œ N은 μ΅œλŒ€ 50으둜, μ—°μ‚° μ•½ 2,500개둜 μ‹œκ°„λ³΅μž‘λ„ 1초 μ•ˆμ— μΆ©λΆ„νžˆ λ“€μ–΄μ˜€κ²Œ λ©λ‹ˆλ‹€.

🍯 TIP ! μ΄λ ‡κ²Œ λͺ¨λ“  경우의 수λ₯Ό νƒμƒ‰ν•΄λ³΄λŠ” μ•Œκ³ λ¦¬μ¦˜μ„ 완전탐색 λ˜λŠ” 브루트포슀라고 ν•©λ‹ˆλ‹€.

2οΈβƒ£Β λ©μΉ˜ 비ꡐ κ΅¬ν˜„ν•˜κΈ°

ν•œ μ‚¬λžŒμ— λŒ€ν•΄, 0λΆ€ν„° N-1κΉŒμ§€μ˜ 각각의 μ‚¬λžŒμ— λŒ€ν•΄ μžμ‹ κ³Ό 덩치λ₯Ό λΉ„κ΅ν•©λ‹ˆλ‹€.

단 이 λ•Œ μžμ‹ κ³ΌλŠ” 비ꡐ할 ν•„μš”κ°€ μ—†κ² μ£ ?

0 ~ N-1 κΉŒμ§€μ˜ μ‚¬λžŒλ“€κ³Ό 비ꡐ할 λ•Œ 자기 μžμ‹ κ³Ό λΉ„κ΅ν•˜λŠ” 경우라면 비ꡐλ₯Ό λ„˜μ–΄κ°€μ€μ‹œλ‹€.

λΉ„κ΅λŠ” 문제의 쑰건 λŒ€λ‘œ μ§„ν–‰ν•©λ‹ˆλ‹€.

β†’ X > P Y > Q