์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- DFS
- ์ค๋ธ์
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- SQL
- ๋จธ์ง์ํธ
- ์ ๋ ฌ
- ์ํ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์ฐ์ ์์ํ
- ๊น์ด์ฐ์ ํ์
- ๋ฐฑ์ค
- ๊ทธ๋ฆฌ๋
- ๊ตฌํ
- DP
- ๋์ ํฉ
- BFS
- ๋์ ๊ณํ๋ฒ
- LIS
- ๋๋น์ฐ์ ํ์
- ์๋ฃ๊ตฌ์กฐ
- ์์ํ์
- ํ์ด์ฌ
- ๊ทธ๋ํํ์
- ์์๊ตฌํ๊ธฐ
- ์๊ณ ๋ฆฌ์ฆ
- db
- ๋ณํฉ์ ๋ ฌ
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- ๊ทธ๋ํ
๐๐ญ๐ฐ๐ธ ๐ฃ๐ถ๐ต ๐ด๐ต๐ฆ๐ข๐ฅ๐บ
[๋ฐฑ์ค] 5639๋ฒ: ์ด์ง ๊ฒ์ ํธ๋ฆฌ - C++ ๋ณธ๋ฌธ
๋ฌธ์
์ด์ง ๊ฒ์ ํธ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ ์ธ ๊ฐ์ง ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ด์ง ํธ๋ฆฌ์ด๋ค.
- ๋ ธ๋์ ์ผ์ชฝ ์๋ธํธ๋ฆฌ์ ์๋ ๋ชจ๋ ๋ ธ๋์ ํค๋ ๋ ธ๋์ ํค๋ณด๋ค ์๋ค.
- ๋ ธ๋์ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ์ ์๋ ๋ชจ๋ ๋ ธ๋์ ํค๋ ๋ ธ๋์ ํค๋ณด๋ค ํฌ๋ค.
- ์ผ์ชฝ, ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ๋ ์ด์ง ๊ฒ์ ํธ๋ฆฌ์ด๋ค.
์ ์ ์ํ (๋ฃจํธ-์ผ์ชฝ-์ค๋ฅธ์ชฝ)์ ๋ฃจํธ๋ฅผ ๋ฐฉ๋ฌธํ๊ณ , ์ผ์ชฝ ์๋ธํธ๋ฆฌ, ์ค๋ฅธ์ชฝ ์๋ธ ํธ๋ฆฌ๋ฅผ ์์๋๋ก ๋ฐฉ๋ฌธํ๋ฉด์ ๋ ธ๋์ ํค๋ฅผ ์ถ๋ ฅํ๋ค. ํ์ ์ํ (์ผ์ชฝ-์ค๋ฅธ์ชฝ-๋ฃจํธ)๋ ์ผ์ชฝ ์๋ธํธ๋ฆฌ, ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ, ๋ฃจํธ ๋ ธ๋ ์์๋๋ก ํค๋ฅผ ์ถ๋ ฅํ๋ค. ์๋ฅผ ๋ค์ด, ์์ ์ด์ง ๊ฒ์ ํธ๋ฆฌ์ ์ ์ ์ํ ๊ฒฐ๊ณผ๋ 50 30 24 5 28 45 98 52 60 ์ด๊ณ , ํ์ ์ํ ๊ฒฐ๊ณผ๋ 5 28 24 45 30 60 52 98 50 ์ด๋ค.
์ด์ง ๊ฒ์ ํธ๋ฆฌ๋ฅผ ์ ์ ์ํํ ๊ฒฐ๊ณผ๊ฐ ์ฃผ์ด์ก์ ๋, ์ด ํธ๋ฆฌ๋ฅผ ํ์ ์ํํ ๊ฒฐ๊ณผ๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
ํธ๋ฆฌ๋ฅผ ์ ์ ์ํํ ๊ฒฐ๊ณผ๊ฐ ์ฃผ์ด์ง๋ค. ๋ ธ๋์ ๋ค์ด์๋ ํค์ ๊ฐ์ 106๋ณด๋ค ์์ ์์ ์ ์์ด๋ค. ๋ชจ๋ ๊ฐ์ ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ฉฐ, ๋ ธ๋์ ์๋ 10,000๊ฐ ์ดํ์ด๋ค. ๊ฐ์ ํค๋ฅผ ๊ฐ์ง๋ ๋ ธ๋๋ ์๋ค.
์ถ๋ ฅ
์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ์ด์ง ๊ฒ์ ํธ๋ฆฌ๋ฅผ ํ์ ์ํํ ๊ฒฐ๊ณผ๋ฅผ ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๋ค.
์ด์ง ํ์ ํธ๋ฆฌ์ ํ์ ์ํ๋ง ๊ตฌํํ๋ฉด ๊ฐ๋จํ๊ฒ ํ ์ ์๋ ๋ฌธ์ .. ๋ผ๊ณ ์๊ฐํ์ง๋ง ํจ์๊น์ง ์ง๋๊ณ ์ ๋๋ก ์ฐ๋ ๋ฐฉ๋ฒ์ ๋ชฐ๋ผ์ ์๊ฐ๋ณด๋ค ์ค๋๊ฑธ๋ ธ๋ค....ใ ใ
์ฝ๋
#include <cstdio>
struct node {
int data;
node* left;
node* right;
};
node* insert(node* tree, int data);
void post(node* tree);
int main(void) {
node* tree;
tree = NULL;
int num;
while(scanf("%d", &num) != EOF) {
tree = insert(tree, num);
}
post(tree);
return 0;
}
node* insert(node* tree, int data) {
if(tree == NULL) {
tree = new node();
tree->data = data;
tree->left = tree->right = NULL;
}
else if(data > tree->data) {
tree->right = insert(tree->right, data);
}
else {
tree->left = insert(tree->left, data);
}
return tree;
}
void post(node* tree) {
if(tree->left != NULL) post(tree->left);
if(tree->right != NULL) post(tree->right);
printf("%d\n", tree->data);
}
'์ฝ๋ฉํ ์คํธ ์ค๋น > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 3020๋ฒ: ๊ฐ๋ฅ๋ฒ๋ - C++ (0) | 2022.02.09 |
---|---|
[๋ฐฑ์ค] 2512๋ฒ: ์์ฐ - C++ (0) | 2022.02.03 |
[๋ฐฑ์ค] 1507๋ฒ: ๊ถ๊ธํ ๋ฏผํธ - C++ (0) | 2022.01.21 |
[๋ฐฑ์ค] 11404๋ฒ: ํ๋ก์ด๋ - C++ (0) | 2022.01.20 |
[๋ฐฑ์ค] 5567๋ฒ: ๊ฒฐํผ์ - C++ (0) | 2022.01.19 |