๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๋จธ์ง€์†ŒํŠธ (4)

๐˜š๐˜ญ๐˜ฐ๐˜ธ ๐˜ฃ๐˜ถ๐˜ต ๐˜ด๐˜ต๐˜ฆ๐˜ข๐˜ฅ๐˜บ

[๋ฐฑ์ค€] 11651๋ฒˆ: ์ขŒํ‘œ ์ •๋ ฌํ•˜๊ธฐ 2 - C++

๋ฌธ์ œ 2์ฐจ์› ํ‰๋ฉด ์œ„์˜ ์  N๊ฐœ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ขŒํ‘œ๋ฅผ y์ขŒํ‘œ๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์œผ๋กœ, y์ขŒํ‘œ๊ฐ€ ๊ฐ™์œผ๋ฉด x์ขŒํ‘œ๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ๋กœ ์ •๋ ฌํ•œ ๋‹ค์Œ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ ์˜ ๊ฐœ์ˆ˜ N (1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” i๋ฒˆ์ ์˜ ์œ„์น˜ xi์™€ yi๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (-100,000 ≤ xi, yi ≤ 100,000) ์ขŒํ‘œ๋Š” ํ•ญ์ƒ ์ •์ˆ˜์ด๊ณ , ์œ„์น˜๊ฐ€ ๊ฐ™์€ ๋‘ ์ ์€ ์—†๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์ ์„ ์ •๋ ฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์ •๋ ฌ์„ ์ด์šฉํ•˜์—ฌ ํ‘ธ๋Š” ๋ฌธ์ œ. 11650๋ฒˆ ์ขŒํ‘œ ์ •๋ ฌํ•˜๊ธฐ ์™€ ๋™์ผํ•˜๊ฒŒ ํ’€๋ฉด ๋œ๋‹ค. ๋ณ‘ํ•ฉ ์ •๋ ฌ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ’€์—ˆ๊ณ , y์ขŒํ‘œ๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์œผ๋กœ - y์ขŒํ‘œ๊ฐ€ ๊ฐ™์œผ๋ฉด x์ขŒํ‘œ๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์•ผ๋˜๊ธฐ ๋•Œ๋ฌธ์— 11650๋ฒˆ ๋ฌธ์ œ ํ’€๋•Œ๋ž‘ ์‚ด์ง๋งŒ ๋‹ค๋ฅด๊ฒŒ ..

[๋ฐฑ์ค€] 11650๋ฒˆ: ์ขŒํ‘œ ์ •๋ ฌํ•˜๊ธฐ - C++

๋ฌธ์ œ 2์ฐจ์› ํ‰๋ฉด ์œ„์˜ ์  N๊ฐœ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ขŒํ‘œ๋ฅผ x์ขŒํ‘œ๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์œผ๋กœ, x์ขŒํ‘œ๊ฐ€ ๊ฐ™์œผ๋ฉด y์ขŒํ‘œ๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ๋กœ ์ •๋ ฌํ•œ ๋‹ค์Œ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ ์˜ ๊ฐœ์ˆ˜ N (1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” i๋ฒˆ์ ์˜ ์œ„์น˜ xi์™€ yi๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (-100,000 ≤ xi, yi ≤ 100,000) ์ขŒํ‘œ๋Š” ํ•ญ์ƒ ์ •์ˆ˜์ด๊ณ , ์œ„์น˜๊ฐ€ ๊ฐ™์€ ๋‘ ์ ์€ ์—†๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์ ์„ ์ •๋ ฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์ •๋ ฌ์„ ์ด์šฉํ•˜์—ฌ ํ‘ธ๋Š” ๋ฌธ์ œ. ๋ณ‘ํ•ฉ ์ •๋ ฌ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ’€์—ˆ๊ณ , x์ขŒํ‘œ๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์œผ๋กœ - x์ขŒํ‘œ๊ฐ€ ๊ฐ™์œผ๋ฉด y์ขŒํ‘œ๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์•ผ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๊ฑด๋ฌธ์„ ํ•˜๋‚˜ ๋” ๋ถ™์˜€๋‹ค. ์ฝ”๋“œ #include void merge(int** sorted,..

[๋ฐฑ์ค€] 2751๋ฒˆ: ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 2 - C++

๋ฌธ์ œ N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 1,000,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆ˜๋Š” ์ ˆ๋Œ“๊ฐ’์ด 1,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค. ์ˆ˜๋Š” ์ค‘๋ณต๋˜์ง€ ์•Š๋Š”๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค. ์ •๋ ฌ ๋ฌธ์ œ. ์ฒ˜์Œ์— ํ€ต ์ •๋ ฌ๋กœ ํ’€์—ˆ์œผ๋‚˜ ์ œ์ถœ ์ „์— ์Ž„ํ•œ ๋Š๋‚Œ์ด ๋“ค์–ด ๊ตฌ๊ธ€๋ง์„ ํ•ด๋ดค๋”๋‹ˆ ํ€ต์ •๋ ฌ์€ ์ตœ์•…์˜ ๊ฒฝ์šฐ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(n2)๋กœ, ์‹œ๊ฐ„์ดˆ๊ณผ์˜ ์œ„ํ—˜์ด ์žˆ๋‹ค๊ณ  ํ•˜๋”๋ผ.. ๊ทธ๋ฆฌํ•˜์—ฌ ๋ณ‘ํ•ฉ ์ •๋ ฌ์„ ๊ตฌํ˜„ํ•˜์—ฌ ํ’€์—ˆ๋‹ค. ๋ณ‘ํ•ฉ์ •๋ ฌ : ๐Ÿ”— ์ฝ”๋“œ #include void merge(int* sorted, int* arr, int begin, int mid..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ •๋ ฌ - 1. ๋ณ‘ํ•ฉ ์ •๋ ฌ(Merge Sort)

1. ๋ณ‘ํ•ฉ ์ •๋ ฌ ; Merge Sort 1.1 ๊ฐœ๋… ๋ถ„ํ•  ์ •๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•œ ๋Œ€ํ‘œ์ ์ธ ์ •๋ ฌ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ, ์—ฌ๋Ÿฌ ์ •๋ ฌ๋œ ์ง‘ํ•ฉ๋“ค์„ ๋ณ‘ํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ์ •๋ ฌ๋œ ์ง‘ํ•ฉ์œผ๋กœ ๋งŒ๋“œ๋Š” ์ •๋ ฌ๋ฐฉ๋ฒ•์„ ์˜๋ฏธํ•œ๋‹ค. ๋ณ‘ํ•ฉ ์ •๋ ฌ์€ ๋‹ค์Œ ์„ธ ๊ฐ€์ง€์˜ ๋‹จ๊ณ„๋ฅผ ํ†ตํ•ด ์ง„ํ–‰๋œ๋‹ค. 1. ๋ถ„ํ• (Divide) : ํฐ ์ง‘ํ•ฉ์„ ๋ถ€๋ถ„์ง‘ํ•ฉ์œผ๋กœ ๋ถ„ํ•  2. ์ •๋ณต(Conquer) : ๋ถ€๋ถ„์ง‘ํ•ฉ ๋‚ด์˜ ์›์†Œ ์ •๋ ฌ 3. ๊ฒฐํ•ฉ(Combine) : ์ •๋ ฌ๋œ ๋ถ€๋ถ„์ง‘ํ•ฉ๋“ค์„ ํ•˜๋‚˜์˜ ์ง‘ํ•ฉ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ๊ฒฐํ•ฉ ์›๋ฆฌ๋งŒ ์ƒ๊ฐํ•˜๋ฉด ๋ณต์žกํ•ด ๋ณด์ด์ง€๋งŒ, ๊ทธ๋ฆผ๊ณผ ํ•จ๊ป˜ ๋ณด๋ฉด ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. ์ •๋ ฌ๋˜์ง€ ์•Š์€ ์ง‘ํ•ฉ A๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. A = { 3, 8, 7, 2, 5, 1, 4, 6 } ์ง‘ํ•ฉ A๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •์„ ํ•ด๋ณด์ž. ๋ณ‘ํ•ฉ ์ •๋ ฌํ•˜๋Š” ๊ณผ์ •์€ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™๋‹ค...