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

Nλͺ…μ˜ μ‚¬λžŒλ“€μ΄ λͺ¨μ—¬ 숫자 κ²Œμž„μ„ ν•©λ‹ˆλ‹€.

각 μ‚¬λžŒμ—κ²ŒλŠ” 1~10κΉŒμ§€μ˜ μˆ˜κ°€ 적힌 λ‹€μ„― μž₯의 μΉ΄λ“œκ°€ μ£Όμ–΄μ§‘λ‹ˆλ‹€.

각 μ‚¬λžŒλ“€μ€ 이 쀑 μ„Έ μž₯의 μΉ΄λ“œλ₯Ό 골라 합을 κ΅¬ν•œ ν›„ 일의자리 수λ₯Ό κ΅¬ν•©λ‹ˆλ‹€.

각 μ‚¬λžŒλ“  μ„Έμž₯의 μΉ΄λ“œλ₯Ό 선택할 λ•Œ 일의 자리 μˆ˜κ°€ κ°€μž₯ 크게 λ˜λ„λ‘ μΉ΄λ“œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.

이 λ•Œ 이 값이 κ°€μž₯ 큰 μ‚¬λžŒμ΄ 이기게 λ©λ‹ˆλ‹€.

각 μ‚¬λžŒμ΄ 받은 μΉ΄λ“œκ°€ μž…λ ₯으둜 μ£Όμ–΄μ§ˆ λ•Œ 이긴 μ‚¬λžŒμ˜ 번호λ₯Ό μ°ΎλŠ” λ¬Έμ œμž…λ‹ˆλ‹€.

이긴 μ‚¬λžŒμ΄ 두λͺ… 이상일 κ²½μš°μ—λŠ” λ²ˆν˜Έκ°€ κ°€μž₯ 큰 μ‚¬λžŒμ΄ μ •λ‹΅μž…λ‹ˆλ‹€


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

1️⃣ 풀이 방법 κ³ λ―Όν•˜κΈ°

ν•œ μ‚¬λžŒμ΄ λ§Œλ“€ 수 μžˆλŠ” κ°€μž₯ 큰 일의 자리 수λ₯Ό κ΅¬ν•˜λŠ”λ°λŠ” μ–΄λ–€ 연산이 ν•„μš”ν• κΉŒμš”?

5μž₯의 μΉ΄λ“œ 쀑 3μž₯의 μΉ΄λ“œλ₯Ό κ³ λ₯΄λŠ”λ°μ—λŠ” 543의 쑰합이 μ‘΄μž¬ν•©λ‹ˆλ‹€.

λ”°λΌμ„œ ν•œ μ‚¬λžŒμ— λŒ€ν•΄ 총 60번의 연산을 거쳐야 κ·Έμ‚¬λžŒμ΄ λ§Œλ“€ 수 μžˆλŠ” κ°€μž₯ 큰 일의 자리 수λ₯Ό ꡬ할 수 μžˆμŠ΅λ‹ˆλ‹€.

이 λ•Œ λ¬Έμ œμ—μ„œ Nλͺ…μ˜ μ‚¬λžŒμ΄ μ£Όμ–΄μ§‘λ‹ˆλ‹€.

즉, N개의 μ‚¬λžŒλ“€μ— λŒ€ν•΄ 각각 λ§Œλ“€ 수 μžˆλŠ” κ°€μž₯ 큰 일의 자리 숫자λ₯Ό ꡬ해야 ν•˜λ―€λ‘œ,

총 N*60, μ΅œλŒ€ 60,000번의 연산이 μ†Œμš” λ©λ‹ˆλ‹€.

이후 Nλͺ…μ˜ μ‚¬λžŒ 쀑 κ°€μž₯ 큰 수λ₯Ό κ°€μ§€κ³  μžˆλŠ” μ‚¬λžŒμ„ νƒμƒ‰ν•˜κΈ° μœ„ν•΄ μΆ”κ°€λ‘œ O(N)의 μ‹œκ°„λ³΅μž‘λ„κ°€ μ†Œμš”λ©λ‹ˆλ‹€.