목록분류 전체보기 (718)
쌓고 쌓다
전체 코드 import java.util.Scanner; class Player{ String name; String word; Player(String str) { name=str; } void getWordFromUser() { Scanner scanner = new Scanner(System.in); System.out.print(name+">>"); word = scanner.next(); } boolean checkSuccess(String str) { if(str.charAt(str.length()-1) == word.charAt(0)) return true; return false; } } public class WordGameApp { int people; Player p[]; String..
https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net 전체 코드 #include using namespace std; pair arr[26]; int N; void preorder(char x) { if (x!='.') { cout > parent >> left >> right; arr[(parent - 'A')].first = left; arr[(parent - 'A')].second=right; } preorder('A'); cout ..
순회 방법 전위 순회(preorder traversal) : 루트노드->Left->Right 방문, VLR 중위 순회(inorder traversal) : Left->루트노드->Right, LVR 후위 순회(postorder traversal) : Left->Right->루트노드, LRV _L_R_ : L R은 고정적이고 V의 위치에 따라 순회 방식이 정해진다. _를 선택하여 V 삽입 전위 순회 (preorder traversal) : 루트 노드 -> 왼쪽 서브 트리 -> 오른쪽 서브 트리 // 전위 순회 void preorder(TreeNode* root) { if (root) { printf("%d", root->data); // 루트 노드 방문 preorder(root->left); // 왼쪽 서브..
이진 트리의 표현 - 배열 표현법 : 모든 이진 트리를 포화 이진 트리라고 가정하여 각 노드에 번호를 붙인다. 인덱스 관계 노드 i의 왼쪽 자식 노드 인덱스 : i*2 노드 i의 오른쪽 자식 노드 인덱스 : i*2+1 노드 i의 부모 노드 인덱스 : i/2 이진 트리의 표현 - 링크 표현법 : 포인터를 이용하여 부모 노드가 자식 노드를 가리키게 하는 방법 노드는 구조체로 링크는 포인터로 구현한다. 아래의 그림같은 트리를 구현해보자. 전체 코드 #include #include typedef struct TreeNode { int data; TreeNode* left, * right; }TreeNode; int main(void) { TreeNode* n1, * n2, * n3; n1 = (TreeNode*..
트리(Tree)는 나무를 뒤집어 놓은 모습과 같은 비선형이며 계층적인 구조이다. 부모-자식 관계의 노드들로 구성 컴퓨터 디스크의 디렉토리 구조 또한 트리이다. 트리의 용어 노드(node) : 트리의 구성요소 루트(root) : 부모가 없는 노드 ( 젤 위의 노드를 뜻함, A ) 서브 트리(sub tree) : 하나의 노드와 그 노드의 자손들로 이루어진 트리 단말 노드(terminal node) : 자식이 없는 노드 (E,F,G,H,I,J) 비 단말 노드 : 적어도 하나의 자식을 가지는 노드 (A,B,C,D) 자식, 부모, 형제, 조상, 자손 노드 차수(degree) : 노드가 가지고 있는 자식 노드의 개수 레벨(level) : 트리의 각층의 번호 높이(height) : 트리의 최대 레벨(3) 아래의 그래..
https://www.acmicpc.net/problem/5568 5568번: 카드 놓기 예제 1의 경우 상근이는 11, 12, 21, 112, 121, 122, 212를 만들 수 있다. www.acmicpc.net 전체 코드 #include #include #include #include using namespace std; vector v; map m; bool visit[11]; int n, k; string str; void solve(int cnt) { if (cnt >= k) { if (m[str] == false) { m[str] = true; } return; } for (int i = 0; i < v.size(); i++) { if (visit[i] == false) { visit[i] ..
https://www.acmicpc.net/problem/12904 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net 전체코드 #include #include using namespace std; string S, T; int main(void) { cin >> S >> T; while (S.length() < T.length()) { if (T[T.length() - 1] == 'A') T.erase(T.length() - 1); else { T.erase(T.length(..
https://www.acmicpc.net/problem/2212 2212번: 센서 첫째 줄에 센서의 개수 N(1 ≤ N ≤ 10,000), 둘째 줄에 집중국의 개수 K(1 ≤ K ≤ 1000)가 주어진다. 셋째 줄에는 N개의 센서의 좌표가 한 개의 정수로 N개 주어진다. 각 좌표 사이에는 빈 칸이 하나 있 www.acmicpc.net 전체 코드(1) #include #include #include using namespace std; int N, K; vector v; vector v2; int main(void) { cin >> N; cin >> K; if (K >= N) { cout n; v.push_back(n); } sort(v.begin(), v.end()); for (int i = 0; i ..