๊ณจ๋4 : ์ด๋ถ ํ์ ๋ฌธ์ ์ด๋ค.
์๊ฐ
์ด๋ ค์ ๋ค. ์ฌ๋ฌ๊ฐ์ง ๋ฐฐ์ด์ด ์์ด๊ณ , ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ์ง ๋ชปํ๋ค. ์ด ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ๋ฐฐ์ด ๊ฒ์, ์ ๋ง ์ปดํจํฐ์ฒ๋ผ(์ผ๋ค..) ์๊ฐํด์ผ ๋๋ค๋ ๊ฒ.. ๊ทธ๋ฆฌ๊ณ ์์๋ฅผ ๋๊ณ , ์ด๊ฒ์ ์ค์ ๋ก ์จ๋ณด๋ฉด์ ์ด์์ ์ผ๋ก ํ ์๊ฐ์ ํ์ง๋ง๊ณ try & modify ํ๋ ๊ฒ์ด๋ค. ๋๋ฌด ๋ผ์ ๋ฆฌ๊ฒ ๋๊ผ๋ค..
๊ทธ๋์, ์ง๊ธ๋ถํฐ ์จ๋ณด๊ฒ ๋ค. ์ด ๋ฌธ์ ์์ ๊ณ ๋ คํด์ผ ํ๋ ์ ์ ํฌ๊ฒ 2๊ฐ์ง ์ด๋ค.
์ผ๋ค.
์ด๋ถ ํ์์ผ๋ก ํ๋ฆฐ๋ค๋ ๊ฒ์ ์์์ผ๋, K๋ฒ์งธ ์๊ฐ N์ด๋ผ๊ณ ์ ์ํ ์ดํ์, ์ด๋ป๊ฒ K๋ฒ์งธ ์์ธ์ง๋ฅผ ๋์ถํ ๊ฒ์ธ์ง์ ๋ํ ๊ณ ๋ฏผ์ด ๋ง์๋ค. ์ฆ, ์ ์ํ ์ซ์์ ๋ํด ์ด ์ซ์๊ฐ ๋ช๋ฒ์งธ ์์ธ์ง๋ฅผ output์ผ๋ก ๋ด๋์ ํจ์๋ฅผ ์ง์ผํ๋ค. ์ฒ์์ ์ด๊ฒ์, ์ ์ํ ์ซ์์ ๋ํ ์ ๊ณฑ์๋ฅผ ์ฐพ์ ํ์์๋ ์๋ฅผ ์ ๋ผ๊ณ ..์ด๋ฐ ๋ฐฉ๋ฒ์ผ๋ก ํ๋ ค๊ณ ํ๋๋ฐ, ์ปดํจํฐ๋ ์ ๋ง ๋จ์ํ๊ฒ ์๊ฐํ๋ ๊ฒ์ด ํต์ฌ์ธ ๊ฒ ๊ฐ๋ค.
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
๋ด๊ฐ ๋ง์ฝ, 25๋ผ๋ ์ซ์๋ฅผ ์ ์ํ๋ค๊ณ ํ์. ๊ทธ๋ ๋ค๋ฉด, 1๋ฒ์งธ ํ์์ ๋ถํฐ, ์ด ์ซ์๋ณด๋ค ์์ ๊ฒ์ด ๋ช๊ฐ์๋ ์ง๋ฅผ ์ผ๋ค. ๊ทธ๋ ๋ค๋ฉด 10์ด๋ค. 3๋ฒ์งธ ์ด์์๋ 8์ด๋ค. ์ด ์ซ์๋ค์, i๋ฒ์งธ ํ์ ์ซ์๋ก ์ ์ํ ์ซ์๋ฅผ ๋๋ ๋ชซ์ผ๋ก ๊ฐ๋ฅํ๋ค. ์ด ๋ฌธ์ ๊ฐ ์ฌ์ด ์ด์ ์ด๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ด๊ฐ ์ ์ํ ์ซ์์ ๋ฒ์งธ ์๋ฅผ ๊ณ์ฐํ๋ ๊ฒ์ ์ ๊ฐ๋ฅํ๋ค.
์ด ๊ณผ์ ์ N์ด 3์ผ ๋ ์ ๋ฆฌํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
1 2 3
2 4 6
3 6 9
์ ์ํ๋ ์ซ์ : 1 2 3 4 5 6 7 8 9
count : 1 3 5 6 6 8 8 8 9
์ด๋ค ๊ฒ์ด ๋ต์ธ๊ฐ?
1 2 3
2 4 6
3 6 9
์ ์ํ๋ ์ซ์ : 1 2 3 4 5 6 7 8 9
count ํจ์ : 1 3 5 6 6 8 8 8 9
B[] : 1 2 2 3 3 4 6 6 9
๋ฒ์งธ ์ : 1 2 3 4 5 6 7 8 9
ํ์ง๋ง ์ด๋ ๊ฒ ๋๋ฉด ์กฐ๊ธ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ์ํ๋ K๊ฐ 8, ์ฆ 8๋ฒ์งธ ์๋ผ๋ฉด 7์ ์ ์ํด๋ 8, 6์ ์ ์ํด๋ 8, 8์ ์ ์ํด๋ 8์ด๋ค. ๊ทธ๋ฐ๋ฐ, 7์ ์ ์ํ๋ฉด A๋ฐฐ์ด์ ์๊ธฐ ๋๋ฌธ์ ๋ต์ด ์๋๋ค. ๋ํ, K๊ฐ 7์ผ ๊ฒฝ์ฐ, countํจ์๋ฅผ ํต๊ณผ์์ผ ๋์จ ๋ฆฌํด ๊ฐ์๋ 7์ด ์๋ค. ํ์ง๋ง 7๋ฒ์งธ ์๋ ๋ถ๋ช ํ ์กด์ฌํ๋ค.
์ด ๋ฌธ์ ๋ ์ซ์๊ฐ ์ฐ์์ ์ผ๋ก ๋์ด๋ ๋ฌธ์ ๊ฐ ์๋๊ธฐ ๋๋ฌธ์, ํน์ ์ซ์์ ๋ํ ๋ฒ์งธ๋ง์ด ์กด์ฌํ๋ค. ๋ค์ ๋งํ๋ฉด 6์ด๋ผ๋ ์ซ์๋ ์ค์ B๋ฐฐ์ด์์ 7๋ฒ์งธ, 8๋ฒ์งธ ์ซ์์ด์ง๋ง, 7์ด๋ผ๋ ์ซ์๋ A๋ฐฐ์ด์ ์๊ธฐ ๋๋ฌธ์ N๋ฒ์งธ ์ซ์๋ผ๋ ๊ฐ๋ ์์ฒด๊ฐ ๋ถ๊ฐ๋ฅ ํ๋ค. ์ฆ, 7์ด๋ผ๋ ์ซ์๋ฅผ ์ ์ํ์ ๋, A๋ฐฐ์ด์์ ์๋ค๊ณ ๊ฐ์ ํ๊ณ ์ซ์๋ฅผ ์ธ๋ฉด, 6์ ์ธ์์ ๋์ ๊ฐ์ count๊ฐ ๋์ค๋, 7์ด๋ผ๋ ์ซ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ต์ด ์๋๋ค.
์ซ์์ ๋ฒ์ ๋๋ฌธ์, ๋ต์ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ธด ํด์ผํ๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ A๋ฐฐ์ด์ ์์ผ๋ฉด์, ์ํ๋ K๋ฒ์งธ๊ฐ ์๋ ์๋ฅผ ์ ์ํ ์ ์์๊น?
K๋ณด๋ค count๊ฐ ํฐ ๋ ์์ ๋ต์ ํ๋ณด์ด๋ค.
์ด๊ฒ์ ์๊ธฐ ์ํด์, ์ผ๋จ ์ด๋ถ ํ์์ด ๋ง๋คํ๊ณ ์๊ฐ์ ํด๋ณด์.
1 2 3
2 4 6
3 6 9
K = 7
์ ์ํ๋ ์ซ์ : 1 2 3 4 5 6 7 8 9
count ํจ์ : 1 3 5 6 6 8 8 8 9
B[] : 1 2 2 3 3 4 6 6 9
๋ฒ์งธ ์ : 1 2 3 4 5 6 7 8 9
start : 1 end : 9 ์ ์ : 5
start : 6 end : 9 ์ ์ : 7
start : 6 end : 6 ์ ์ : 6
K = 7์ธ ์ํฉ์์ ์๊ฐํด๋ณด์. ๋จผ์ (1+9)/2 = 5๋ฅผ ์ ์ํ๋ค. ์ด ๋์ ํจ์ ํต๊ณผ ๊ฐ์ 6์ด๋ฏ๋ก, K๋ณด๋ค ์๋ค. ๋ฐ๋ผ์ ๊ฐ์ ์ฌ๋ ค ์ ์ํ๋ค.
์ด๋ฒ์ (6+9)/2 = 7์ ์ ์ํ๋ค. ์ด ๊ฒฝ์ฐ ํจ์ ํต๊ณผ ๊ฐ์ 8์ด๋ค. K๋ณด๋ค ์๋ค. ๋ฐ๋ผ์ ์ ์ํ๋ ๊ฐ์ ๋ฎ์ถ๋ค.
๋ง์ง๋ง์ผ๋ก (6+6)/2 = 6๋ฅผ ํ์ํ๋ค. ์ด ๊ฒฝ์ฐ count๋ 8์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ L, R๊ฐ ์ญ์ ๋๋ฏ๋ก ๋๋๋ค. ํ์ง๋ง ๋ต์ ์ฐพ์๋ค. 6์ด๋ค.
์ฆ, count๊ฐ ๊ตณ์ด K์ ๊ฐ์ง ์๋๋ผ๋ ๋ต์ ๊ตฌํ ์ ์๋ค.
์ด ๋ถ๋ถ์ ์ ์๊ฐํด๋ณด์.
7์ ์ธ์์ ๋์ 6์ ์ธ์์ ๋, ๊ฐ์ ๋ฒ์งธ ์(8)๋ผ๋ ๊ฒฐ๋ก ์ด ๋์ค๋, ์ฐ๋ฆฌ๋ 8์ด๋ผ๋ ์ซ์๊ฐ ์ฒ์ ๋ฑ์ฅํ๋ ์ซ์๋ฅผ ๋ต์ผ๋ก ์ ์ํด์ผ ํ๋ค. 7์ ์ ์ํ์ ๋, 8์ด ๋์ค๋ ์ด์ ๋, 7์ด๋ผ๋ ์ซ์๊ฐ A๋ฐฐ์ด์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ค์ ๋ก ์๋ ์๋, countํจ์๋ฅผ ๋๋ ธ์ ๋, ์ฒ์์ผ๋ก 8์ด๋ผ๋ ์ซ์๊ฐ ๋์ค๋ ๊ฒฝ์ฐ, ํด๋น ์ซ์๋ฅผ A๋ฐฐ์ด์ ์๋ ์๋ผ๊ณ ์๊ฐํ ์ ์๋ค. (์ ์๊ฐํด๋ณด์.) ๊ทธ๋ ๊ธฐ ๋๋ฌธ์, ์ฐ๋ฆฌ๋ ์ด๋ถ ํ์์ ๋ถ๊ธฐ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ ํด์ผ ํ๋ค.
- count๊ฐ K๋ณด๋ค ์๋ค.
- ์ด ๊ตฌ๊ฐ์๋ ๋ต์ด ์กด์ฌํ ์ ์์ผ๋ฏ๋ก ๋ ํฐ ๊ฐ์ ํ์ํ๋ค.
- count๊ฐ K๋ณด๋ค ํฌ๋ค.
- ์ด ๊ตฌ๊ฐ์๋ ๋ต์ด ์กด์ฌํ ์ ์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ด ๋ ์ ์ํ ๊ฐ์ ๋ต์ ํ๋ณด๋ก ์ฑํํ๋ค.
- ๊ทธ๋ฆฌ๊ณ , count๊ฐ K์ ๊ฐ์ ๊ตฌ๊ฐ์ ์ฐพ๊ธฐ ์ํด ๋ ์์ ๊ฐ์ ํ์ํ๋ค.
์ด ๊ณผ์ ์ ๊ฑฐ์น๊ฒ ๋๋ฉด์ ์ฐ๋ฆฌ๊ฐ ํ๋ ๊ณผ์ ์, ์ต๋ํ K์ ๊ฐ์ ๊ฐ์ ์ฐพ๋๋ค ์ด๋ค. ์ด๋ฌํ ๋ฐฉ๋ฒ์ ๊ณง, ๊ฐ์ count๊ฐ์ด ๋์ค๋๋ผ๋, ๊ทธ ๊ฐ์ count๊ฐ์ด ์ฒ์์ผ๋ก ๋ฑ์ฅํ๋ ์๋ฅผ ๋ต์ผ๋ก ์ฑํํ๋ค. ๋ผ๋ ์๋ฏธ์ ์ผ์นํ๋ค.