๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

2019/124

๋ฐฑ์ค€ 14500๋ฒˆ ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ ์™„์ „ํƒ์ƒ‰(brute-force) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ :: ์ฝ”๋“œ์ž๋ชฝ [๋ฐฑ์ค€] 14500๋ฒˆ ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ 14500๋ฒˆ: ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ ํด๋ฆฌ์˜ค๋ฏธ๋…ธ๋ž€ ํฌ๊ธฐ๊ฐ€ 1ร—1์ธ ์ •์‚ฌ๊ฐํ˜•์„ ์—ฌ๋Ÿฌ ๊ฐœ ์ด์–ด์„œ ๋ถ™์ธ ๋„ํ˜•์ด๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค. ์ •์‚ฌ๊ฐํ˜•์€ ์„œ๋กœ ๊ฒน์น˜๋ฉด ์•ˆ ๋œ๋‹ค. ๋„ํ˜•์€ ๋ชจ๋‘ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ •์‚ฌ๊ฐํ˜•์˜ ๋ณ€๋ผ๋ฆฌ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰, ๊ผญ์ง“์ ๊ณผ ๊ผญ์ง“์ ๋งŒ ๋งž๋‹ฟ์•„ ์žˆ์œผ๋ฉด ์•ˆ ๋œ๋‹ค. ์ •์‚ฌ๊ฐํ˜• 4๊ฐœ๋ฅผ ์ด์–ด ๋ถ™์ธ ํด๋ฆฌ์˜ค๋ฏธ๋…ธ๋Š” ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ๋ผ๊ณ  ํ•˜๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ 5๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์•„๋ฆ„์ด๋Š” ํฌ๊ธฐ๊ฐ€ Nร—M์ธ ์ข…์ด ์œ„์— ํ…ŒํŠธ๋กœ๋ฏธ๋…ธ ํ•˜๋‚˜๋ฅผ ๋†“์œผ๋ ค๊ณ  ํ•œ๋‹ค. ์ข…์ด๋Š” 1ร—1 ํฌ๊ธฐ์˜ ์นธ์œผ๋กœ ๋‚˜๋ˆ„ www.acmicpc.net ํ’€์ด ์ด๋Ÿฐ ๋ธ”๋ก ํ˜•ํƒœ์˜ ๋ฌธ์ œ๊ฐ€ ๋‚˜์˜ค๋ฉด ์‹ค์ œ๋กœ ๋„ํ˜•์„ ๊ทธ๋ ค๋ณด๋ฉด์„œ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์ธ ๊ฒƒ ๊ฐ™๋‹ค. ๋จผ์ € N*M ํฌ๊ธฐ์˜ ์ข…์ด ์œ„์— ๋ธ”๋ก ํ•˜๋‚˜๋งŒ ๋†“๋Š”๋‹ค๊ณ  ํ–ˆ์œผ๋‹ˆ.. 2019. 12. 23.
๋ฐฑ์ค€ 2309๋ฒˆ ์ผ๊ณฑ ๋‚œ์Ÿ์ด ์™„์ „ํƒ์ƒ‰(brute-force) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ :: ์ฝ”๋“œ ์ž๋ชฝ ์™„์ „ ํƒ์ƒ‰ Brute-Force ์™„์ „ ํƒ์ƒ‰์€ ๋ง ๊ทธ๋Œ€๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ์˜์ˆ˜๋ฅผ ์ผ์ผ์ด ํƒ์ƒ‰ํ•˜์—ฌ ์ •๋‹ต์„ ์ฐพ์•„๋‚ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•์„ ๋ชจ๋‘ ํ™•์ธํ•˜์—ฌ ์ •ํ™•๋„๊ฐ€ ๋†’๊ณ  ๊ฐ•๋ ฅํ•œ ๋ฐฉ์‹์ด์ง€๋งŒ, ์‹œ๊ฐ„์€ ๋‹ค์†Œ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ธŒ๋ฃจํŠธ ํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋ฌธ์ œ์˜ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋จผ์ € ๊ณ„์‚ฐ์„ ํ•ด๋ด์•ผํ•œ๋‹ค. ์ปดํ“จํ„ฐ๊ฐ€ 1์ดˆ์— ๋Œ€๋žต 1์–ต ๋ฒˆ ์ •๋„์˜ ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ํšจ์œจ์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ๋ธŒ๋ฃจํŠธ ํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋ฌธ์ œ๋ฅผ ์ ‘๊ทผํ•  ๊ฒฝ์šฐ ๊ธฐ์ค€์€ ์ •ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "์ฒœ๋งŒ(10,000,000) ๊ฑด ์ดํ•˜์˜ ๊ฒฝ์šฐ ์ˆ˜๊ฐ€ ์กด์žฌํ•  ๋•Œ๋งŒ ๋ธŒ๋ฃจํŠธ ํฌํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค."๋ผ๋Š” ๊ธฐ์ค€์„ ์ •ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ์œ ๋ฆฌํ•˜๋‹ค. [๋ฐฑ์ค€] 2309๋ฒˆ ์ผ๊ณฑ ๋‚œ์Ÿ์ด 2309๋ฒˆ: ์ผ๊ณฑ ๋‚œ์Ÿ์ด ์•„ํ™‰ ๊ฐœ์˜ ์ค„์— ๊ฑธ.. 2019. 12. 23.
์†Œ์ˆ˜(Prime Number) ๊ตฌํ•˜๊ธฐ ํšจ์œจ์  ์•Œ๊ณ ๋ฆฌ์ฆ˜ :: ์ฝ”๋“œ์ž๋ชฝ ์†Œ์ˆ˜(Prime Number) ์†Œ์ˆ˜๋Š” ์ž์‹ ๋ณด๋‹ค ์ž‘์€ ๋‘๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋ฅผ ๊ณฑํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” 1๋ณด๋‹ค ํฐ ์ž์—ฐ์ˆ˜์ด๋‹ค. ex) 5๋Š” 5*1 ๋˜๋Š” 1*5๋กœ ์ˆ˜๋ฅผ ๊ณฑํ•ฉ ๊ฒฐ๊ณผ๋ฅผ ์ ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด ๊ทธ ์ˆ˜ ์ž์‹ ์„ ํฌํ•จํ•˜๊ธฐ ๋•Œ๋ฌธ์— 5๋Š” ์†Œ์ˆ˜์ด๋‹ค. ์†Œ์ˆ˜ (์ˆ˜๋ก ) - ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „ ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „. ์ขŒ์ธก์€ ์†Œ์ˆ˜, ์šฐ์ธก์€ ํ•ฉ์„ฑ์ˆ˜. ์†Œ์ˆ˜๋ž€ ์ž์‹ ๋ณด๋‹ค ์ž‘์€ ๋‘ ์ž์—ฐ์ˆ˜๋ฅผ ๊ณฑํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” 1๋ณด๋‹ค ํฐ ์ž์—ฐ์ˆ˜์ด๋‹ค. ์†Œ์ˆ˜(็ด ๆ•ธ, ๋ฐœ์Œ: [์†Œ์‘ค], ๋ฌธํ™”์–ด: ์”จ์ˆ˜, ์˜์–ด: prime number)๋Š” ์ž์‹ ๋ณด๋‹ค ์ž‘์€ ๋‘ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋ฅผ ๊ณฑํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” 1๋ณด๋‹ค ํฐ ์ž์—ฐ์ˆ˜์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 5๋Š” 1x5 ๋˜๋Š” 5x1๋กœ ์ˆ˜๋ฅผ ๊ณฑํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด ๊ทธ ์ˆ˜ ์ž์‹ ์„ ํฌํ•จํ•˜๊ธฐ ๋•Œ๋ฌธ์— 5๋Š” ์†Œ์ˆ˜์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ .. 2019. 12. 22.
์ตœ๋Œ€๊ณต์•ฝ์ˆ˜(GCD), ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜(LCM) ๊ตฌํ•˜๊ธฐ ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• ์•Œ๊ณ ๋ฆฌ์ฆ˜ :: ์ฝ”๋“œ์ž๋ชฝ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ GCD(Greatest Common Divisor) ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋Š” ๋‘ ์ž์—ฐ์ˆ˜์˜ ๊ณตํ†ต๋œ ์•ฝ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ex) 72 ์™€ 30์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋Š” 6์ด๋‹ค. ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ LCM(Least Common Multiple) ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋Š” ๋‘ ์ž์—ฐ์ˆ˜์˜ ๊ณตํ†ต๋œ ๋ฐฐ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ = ๋‘ ์ž์—ฐ์ˆ˜์˜ ๊ณฑ / ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ ex) 72 ์™€ 30์˜ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋Š” 360์ด๋‹ค. ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•(Euclidean Algorithm) 2๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋ฅผ ๋ฐ›์•„ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด 2๋ถ€ํ„ฐ ๋‘ ์ž์—ฐ์ˆ˜ ์ค‘ ์ž‘์€ ์ž์—ฐ์ˆ˜๊นŒ์ง€ ๋ชจ๋‘ ๋‚˜๋ˆ„์–ด๋ณด๋ฉด์„œ ๊ฐ€์žฅ ํฐ ๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(N)์ด ๋œ๋‹ค. ๋‚˜์œ ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ์ง€๋งŒ ํšจ์œจ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์ด๋ž€ ์•Œ๊ณ ๋ฆฌ์ฆ˜.. 2019. 12. 22.