Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- InputManager
- Raycast
- 깊이 우선 탐색
- LookRotation
- 유니티 InputManager
- Quaternion.Euler
- 오브젝트 풀링
- 소스코드 줄번호
- 유니티 ResourceManager
- c++
- 유니티 리소스매니저
- eulerAngles
- 유니티 오브젝트 풀링
- LFS
- c++ 문자열 자르기
- Mathf.Clamp
- unity
- 이진트리
- 너비 우선 탐색
- 유니티 Rotate
- 코드블럭 테마
- 유니티 Vector3
- 유니티 Collision
- LayerMask
- 유니티 머신러닝
- ML-Agents
- 알고스팟
- 유니티
- git-lfs
- 유니티 시야 가림
Archives
- Today
- Total
무민은귀여워
[알고스팟] 쿼드 트리 뒤집기 QUADTREE 본문
반응형
https://algospot.com/judge/problem/read/QUADTREE
algospot.com :: QUADTREE
쿼드 트리 뒤집기 문제 정보 문제 대량의 좌표 데이터를 메모리 안에 압축해 저장하기 위해 사용하는 여러 기법 중 쿼드 트리(quad tree)란 것이 있습니다. 주어진 공간을 항상 4개로 분할해 재귀적으로 표현하기 때문에 쿼드 트리라는 이름이 붙었는데, 이의 유명한 사용처 중 하나는 검은 색과 흰 색밖에 없는 흑백 그림을 압축해 표현하는 것입니다. 쿼드 트리는 2N × 2N 크기의 흑백 그림을 다음과 같은 과정을 거쳐 문자열로 압축합니다. 이 그림의 모든
algospot.com
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | #include <iostream> #include <string> using namespace std; class Node { public: Node* parent; Node* firstChild; Node* secondChild; Node* thirdChild; Node* fourthChild; char data; Node(char ch) { data = ch; parent = NULL; firstChild = NULL; secondChild = NULL; thirdChild = NULL; fourthChild = NULL; } }; Node* makeTree(string::iterator& it) { char ch = *it; Node* n = new Node(ch); if (ch == 'x') { it++; n->firstChild = makeTree(it); it++; n->secondChild = makeTree(it); it++; n->thirdChild = makeTree(it); it++; n->fourthChild = makeTree(it); } return n; } void solve(Node* n) { cout << n->data; if (n->firstChild != NULL) { Node* temp1 = n->firstChild; n->firstChild = n->thirdChild; n->thirdChild = temp1; Node* temp2 = n->secondChild; n->secondChild = n->fourthChild; n->fourthChild = temp2; solve(n->firstChild); solve(n->secondChild); solve(n->thirdChild); solve(n->fourthChild); } } int main() { int count; cin >> count; while (count--) { string str; cin >> str; string::iterator it = str.begin(); Node* start = makeTree(it); solve(start); cout << endl; } return 0; } | cs |
반응형
'IT > 알고리즘' 카테고리의 다른 글
[백준]1339 단어 수학 (0) | 2021.05.17 |
---|---|
Bubble(버블 정렬), Insertion(삽입 정렬), Quick(퀵 정렬) 소스 (0) | 2019.11.27 |
[코딩인터뷰] 자료구조 (0) | 2019.11.22 |
[알고스팟] 울타리 잘라내기 FENCE (0) | 2019.11.19 |
[알고스팟] 숫자 게임 NUMBERGAME (0) | 2019.11.19 |
Comments