본문 바로가기

분류 전체보기

(164)
decltype #include using namespace std; struct A { double d; int i; }; int main() { int a = 3; decltype(a) b = 2;//int int& r_a = a; decltype(r_a) r_b = b;//int& int&& x = 3; decltype(x) y = 2;//int&& A* aa; decltype(aa->d) dd = 0.1; // double }
백준 11098 문제링크 https://www.acmicpc.net/problem/11098 11098번: 첼시를 도와줘! 구단이 성적을 내지 못한다면 답은 새 선수 영입뿐이다. 이것은 오늘날 유럽 리그에서 가장 흔한 전략이고, 노르웨이의 로젠버그 팀은 이러한 전략이 성공한 대표적 예시다. 그들은 많은 스카 www.acmicpc.net #include using namespace std; int main() { int n = 0; int p = 0; int c[100]; int maxCost = 0; string name[100]; string max = "null"; string maxName[100]; cin >> n; for (int i = 0; i > p; for (int j = 0..
1977번:완전제곱수 문제링크 https://www.acmicpc.net/problem/1977 1977번: 완전제곱수 M과 N이 주어질 때 M이상 N이하의 자연수 중 완전제곱수인 것을 모두 골라 그 합을 구하고 그 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 완 www.acmicpc.net #include using namespace std; int main() { int m, n; int sum = 0; int min = 100000; bool sf = 0; cin >> m; cin >> n; for (int i = 0; i
BST 구현하기 #include struct node { int data; node* left; node* right; }; struct bst { node* root = nullptr; node* find(int value) { return find_impl(root, value); } private: node* find_impl(node* current, int value) { if (!current) { std::cout data == value) { std::cout left) current->left = new node{ value, NULL, NULL }; else insert_impl(current->left, value); } else { if (!current->right) current->right =..
이진 검색 트리(BST) 이진 검색 트리(BST, Binary Search Tree)는 널리 사용되는 형태의 이진 트리입니다. 이진 검색트리의 특징 부모 노드의 값 >= 왼쪽 자식 노드의 값 부모 노드의 값
트리 순회 일단 트리가 구성되어 있따면, 이 트리를 다양한 방법으로 순회하여 원하는 노드에 접근할 수 있습니다. 다양한 순회 방법에 대해 간략히 알아보겠습니다. 전위 순회(pre-order traversal) 이 방법은 현재 노드를 먼저 방문하고, 그다음은 현재 노드의 왼쪽 하위 노드를, 마지막으로는 현재 노드의 오른쪽 하위 노드를 재귀적인 방식으로 방문합니다. 중위 순회(in-order traversal) 왼쪽 노드를 먼저 방문하고, 그다음에 현재 노드, 마지막으로 오른쪽 노드를 방문합니다. 후위 순회(post-order traversal) 두 자식 노드를 먼저 방문한 후, 현재 노드를 방문합니다. 레벨 순서 순회(level-order traversal) 트리의 맨 위 레벨부터 아래 레벨까지, 왼쪽 노드에서 오른..
트리(조직도 구조 만들기) "트리"는 계층적인 자료구조를 표현하기 위해서 사용한다. 이진트리를 구현해보자. 이진트리는 하나의 노드에 두 개의 자식노드를 가질 수 있다. 데이터가 저장된 부분을 노드(node)라고 한다. 노드와 노드 사이를 잇는 선을 간선(edge)라고한다. 회사의 조직도를 구현해본다. 예를 들어서 다음 그림과 같은 모습이다. #include struct node { std::string position; node* first; node* second; }; struct org_tree { node* root; // 새로운 트리를 만드는 정적 함수 static org_tree create_org_structure(const std::string& pos) { org_tree tree; tree.root = new n..
c++17 fold expression(재귀호출) c++17 이전에는 재귀호출을 종료하기 위한 베이스 케이스를 만들어줘야 했지만 fold형식을 사용한다면 간단하게 표현가능하다. #include using namespace std; template int sum_all(Ints... nums) { return (... + nums); } int main() { std::cout