๋ฌธ์
๋ฌธ์
N๊ฐ์ ์๊ฐ ์ฃผ์ด์ก์ ๋, ์ด๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N(1 โค N โค 10,000,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ์ซ์๊ฐ ์ฃผ์ด์ง๋ค. ์ด ์๋ 10,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๊ฒฐ๊ณผ๋ฅผ ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
10 5 2 3 1 4 2 3 5 1 7
์์ ์ถ๋ ฅ 1
1 1 2 2 3 3 4 5 5 7
ํ์ด๊ณผ์
1.๊ท์น
- ์ ๋ ฌ ๊ฐฏ์ N(1 โค N โค 10,000,000)์ด ๋งค์ฐ ํฌ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์๊ฐ์ ๊ณ ๋ คํฉ๋๋ค.
- ์ ๋ ฌ ํด์ผํ๋ ์๋ค์ 10,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์๋ผ๋ ๋ฒ์์์ ์์ต๋๋ค.
2.์์
์ต์ํ์ ๋ฉ๋ชจ๋ฆฌ๋ก! ์ต๋ํ ๋น ๋ฅด๊ฒ! ๊ฐ ๋ฌธ์ ์ ํต์ฌ์ด์์ต๋๋ค.
c++์ ๊ฒฝ์ฐ 10,000,000ํฌ๊ธฐ์ ๋ฐฐ์ด์ด๋ ๋ฒกํฐ๋ ๋ฌด์กฐ๊ฑด '๋ฉ๋ชจ๋ฆฌ์ด๊ณผ'๊ฐ ๋จ๋ฏ๋ก, ์ ๊ฐ ์ข์ํ๋ ๋จธ์ง์ํธ๋ฅผ ์ธ ์ ์์์ต๋๋ค.
๋์ , ํน์ ๋ฒ์ ์์ ์๋ ์๋ค์ ์ ๋ ฌํ ๋ ๊ฐ์ฅ ๋น ๋ฅธ ์๊ฐ๋ณต์ก๋$O(N+k)$์ ๊ณต๊ฐ๋ณต์ก๋$O(k)$๋ฅผ ๊ฐ์ง๋ Counting sort(๊ณ์ ์ ๋ ฌ)๊ธฐ๋ฒ์ ์ฌ์ฉํด์ ํ์์ต๋๋ค.
<์ฐธ๊ณ 1>
-Counting sort ์ํค : https://en.wikipedia.org/wiki/Counting_sort
-Counting sort๋ฅผ ์ ์ ๋ฆฌํด ๋์ผ์ ๋ถ์ ๊ธ๐ : https://bowbowbow.tistory.com/8
<์ฐธ๊ณ 2>
-Merge sort์ ํ๊ท ์๊ฐ๋ณต์ก๋ : $O(NlogN)$
-Merge sort์ ๊ณต๊ฐ๋ณต์ก๋ : $ะ(N)$
3.์ฝ๋
* ์ต๋ํ ๋น ๋ฅธ์๋์ฌ์ผ ํ๋ฏ๋ก, ์ ์ถ๋ ฅ๋ cin, cout๋ณด๋ค ๋น ๋ฅธ scanf, printf๋ก ํด์ฃผ์ด์ผ ์ ๋ต์ฒ๋ฆฌ๊ฐ ๋ฉ๋๋ค. *
'๐ค PS(Problem Solving) > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/c++] 11004๋ฒ - K๋ฒ์งธ ์ (0) | 2019.08.02 |
---|---|
[๋ฐฑ์ค/c++] 11652๋ฒ - ์นด๋ (0) | 2019.08.02 |
[๋ฐฑ์ค/c++] 1003๋ฒ - ํผ๋ณด๋์น (0) | 2019.07.30 |
[๋ฐฑ์ค/c++] 10825๋ฒ - ๊ตญ์์ (0) | 2019.07.30 |
[๋ฐฑ์ค/c++] 10814๋ฒ - ๋์ด์ ์ ๋ ฌ (0) | 2019.07.28 |