Swift Data Structure And Algorithm/Divide&Conquer Algorithm 1

์—ฐ์† ๋ถ€๋ถ„ ์ตœ๋Œ€ํ•ฉ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ์œ„ ๋ฌธ์ œ๋ฅผ ์™„์ „ํƒ์ƒ‰์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ฒŒ ๋ ๊ฒฝ์šฐ O(n^2)์œผ๋กœ ๊ตฌ๊ฐ„์„ ํƒ์ƒ‰ํ•ด์•ผ ํ•˜๊ณ  ๊ตฌ๊ฐ„๋งˆ๋‹ค ์ตœ๋Œ€ํ•ฉ์„ ๊ตฌํ•ด์•ผํ•˜๋ฏ€๋กœ, ์ด O(n^3)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์งˆ ๊ฒƒ์ž„ ์œ„ ์™„์ „ํƒ์ƒ‰์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์€ ์ตœ๋Œ€ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ถ€๋ถ„์„ ํ•ฉ์„ ๋ฏธ๋ฆฌ ์ €์žฅํ•ด๋†“์Œ์œผ๋กœ์จ O(1)๋กœ ์ค„์—ฌ ์ด O(n^2)์œผ๋กœ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ํ•ด๋‹น ๋ฌธ์ œ์˜ ํฌ๊ธฐ๋Š” 100,000์ด๋ฏ€๋กœ ํ•ด๋‹น ์‹œ๊ฐ„๋ณต์žก๋„๋„ ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์•„๋‹˜ ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์œ„ ๋ฌธ์ œ๋„ ์ž๊ธฐ ์ž์‹  ์†์— ์ตœ๋Œ€ํ•ฉ์„ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์žฌ๊ท€ํ˜ธ์ถœ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Œ ์ฆ‰, ๋ถ„ํ•  ์ •๋ณต๋ฒ•์„ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์™ผ์ชฝ ๊ตฌ๊ฐ„์˜ ์ตœ๋Œ€ํ•ฉ, ์˜ค๋ฅธ์ชฝ ๊ตฌ๊ฐ„์˜ ์ตœ๋Œ€ํ•ฉ์„ ๊ตฌํ•˜๊ณ , ๊ฒฝ๊ณ„๋ฅผ ํฌํ•จ..