๊ณ์ ์ ๋ ฌ
์ด๋ฒ์๋ ๊ณ์ ์ ๋ ฌ์ ๋ํด ์์๋ณด์. ๊ณ์ ์ ๋ ฌ์ด๋ ๋จ์ํ๊ฒ 'ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ธ๋ ์๊ณ ๋ฆฌ์ฆ'์ด๋ค. ํ์ง๋ง ๊ณ์ ์ ๋ ฌ์ '๋ฒ์์กฐ๊ฑด'์ด ์๋ ๊ฒฝ์ฐ์ ํํด์ ๊ต์ฅํ ๋น ๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
์ง๊ธ๊น์ง ์ ํ ์ ๋ ฌ, ๋ฒ๋ธ ์ ๋ ฌ, ์ฝ์ ์ ๋ ฌ, ํต ์ ๋ ฌ, ๋ณํฉ ์ ๋ ฌ, ํ ์ ๋ ฌ์ ๋ฐฐ์ ๋๋ฐ ์ง๊ธ ๊น์ง ๋ฐฐ์ด ์ ๋ ฌ ์ค ๊ฐ์ฅ ๋น ๋ฅธ ์ ๋ ฌ๋ฐฉ๋ฒ์ ๊ณ ๋ฅด๋ผ๋ฉด ์๊ฐ ๋ณต์ก๋ O(N*log N)์ ๊ฐ์ง๋ ํต ์ ๋ ฌ, ๋ณํฉ ์ ๋ ฌ, ํ ์ ๋ ฌ ์ค ํ๋๋ฅผ ๊ณ ๋ฅผ ๊ฒ์ด๋ค. ํ์ง๋ง ์ด๋ณด๋ค ๋ ๋น ๋ฅด๊ฒ ์ ๋ ฌํด์ผ ํ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ๋ ๊น?
๊ณ์ ์ ๋ ฌ์ ๋ฒ์๊ฐ ์ฃผ์ด์ ธ์๋ค๋ฉด ์๊ฐ๋ณต์ก๋ O(N)์ ์๋๋ก ์ ๋ ฌ์ ์ํํ๋ค. ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐฏ์๋ฅผ ์ธ๊ณ , ๊ฐฏ์๋งํผ ์ถ๋ ฅํด์ฃผ๋ฉด ์ ๋ ฌ์ด ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ๊ต์ฅํ ๋น ๋ฅด๋ค.
๋ค์์ 5 ์ดํ ์์ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ์ธ์.
1, 3, 2, 4, 3, 2, 5, 3, 1, 2, 3, 4, 4, 3, 5, 1, 2, 3, 5, 2, 3, 1, 4, 3, 5, 1, 2, 1, 1, 1
#include <stdio.h>
int main(void){
int tmp, count[6], array[30] = { 1,3,2,4,3,2,5,3,1,2,3,4,4,3,5,1,2,3,5,2,3,1,4,3,5,1,2,1,1,1 };
for (int i = 1; i <= 5; i++) {
count[i] = 0;
}
for (int i = 0; i < 30; i++) {
count[array[i]]++;
}
for (int i = 1; i <= 5; i++) {
if (count[i] != 0) {
for (int j = 0; j < count[i]; j++) {
printf("%d ", i);
}
}
}
}
์์ ๊ฐ์ด ์์ค์ฝ๋๋ ๊ต์ฅํ ๊ฐ๊ฒฐํ๋ค.
ํ์ด์ฌ
data = [1,3,2,4,3,2,5,3,1,2,3,4,4,3,5,1,2,3,5,2,3,1,4,3,5,1,2,1,1,1]
count=[0,0,0,0,0,0]
for i in range(len(data)):
count[data[i]] +=1
print(count)
for i in range(len(count)):
if count[i] != 0:
for j in range(count[i]):
print(i, end=" ")
์ด ๊ธ์ ๋๋๋น๋์ ์ค์ ์๊ณ ๋ฆฌ์ฆ ๊ฐ์ข (Algorithm Programming Tutorial)๋ฅผ ์ฐธ๊ณ ํด ์์ฑํ์์ต๋๋ค.
https://www.youtube.com/watch?v=qQ5iLNjpxSk&list=PLRx0vPvlEmdDHxCvAQS1_6XV4deOwfVrz
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๊ณ ๋ฆฌ์ฆ [Algorithm] - ํ ์ ๋ ฌ Heap Sort(6) (C,Python) (0) | 2022.03.11 |
---|---|
์๊ณ ๋ฆฌ์ฆ [Algorithm] - ๋ณํฉ ์ ๋ ฌ Merge Sort(5) (C,Python) (0) | 2022.03.10 |
์๊ณ ๋ฆฌ์ฆ [Algorithm] - ๊ธฐ์ด ์ ๋ ฌ๋ฌธ์ ํ์ด๋ณด๊ธฐ (5) (C, Python) (0) | 2022.03.09 |
์๊ณ ๋ฆฌ์ฆ [Algorithm] - ํต ์ ๋ ฌ (4) (C, Python) (0) | 2022.03.08 |
์๊ณ ๋ฆฌ์ฆ [Algorithm] - ์ฝ์ ์ ๋ ฌ (3) (C, Python) (0) | 2022.03.07 |