별의 공부 블로그 🧑🏻‍💻

🗒️ Source Code/C++ (11)

728x90
  1. 2022.12.13 [C++] 3개의 숫자 중에서 최댓값 구하기 (max(a, b, c))

    3개의 숫자 중에서 최댓값 구하기 (max(a, b, c)) 들어가며 @max()@ 함수의 매개변수로 2개의 숫자밖에 넣질 못한다. 따라서 3개 이상의 숫자를 비교하려면 @max(a, max(b, c))@와 같이 사용해야 한다. 하지만 다음과 같이 간단하게 3개의 숫자 중 최댓값을 구하는 커스텀 함수를 작성하여 사용할 수 있다. 방법 int myMax(int a, int b, int c) { return a > b ? (a > c) ? a : c : (b > c) ? b : c; } a > b ? (a > c) ? a : c : (b > c) ? b : c 예제 #include using namespace std; int myMax(int a, int b, int c) { return a > b ? (a..

  2. 2021.05.28 [C++] STL로 해시 테이블(Hash Table) 만들기 (std::unordered_map, std::unordered_set)

    STL로 해시 테이블(Hash Table) 만들기 서론 C++의 STL을 이용하여 해시 테이블(Hash Table)을 구현할 수 있다. std::unordered_map과 std::unordered_set을 이용한다. 이 방법으로 해시 테이블을 구현할 경우 원소의 순서가 보장되지 않으며, 원소의 순서를 보장하도록 만들기 위해서는 std::unordered_multimap 또는 std::unordered_multiset을 이용하여 구현하면 된다. 코드 #include #include #include void print(const std::unordered_set& container) { for (const auto& element : container) { std::cout

  3. 2021.05.15 [C++] 조직 구조도 만들기 (이진 트리 이용)

    조직 구조도 만들기 (이진 트리 이용) 서론 트리(Tree) 자료구조를 이용하여 조직 구조도를 만들어보자. 이진 트리(Binary Tree)를 이용하고, 1명의 상사 직원 밑에 2명의 부하 직원을 둘 수 있다고 가정한다. 상사 직원이 없을 경우, 부하 직원을 추가할 수 없다. 코드 #include #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 node {pos, NULL, NULL}; return t..

  4. 2021.05.08 [C++] 다양한 타입의 데이터 여러 개를 인자로 받아 공통 타입으로 변환하는 함수

    다양한 타입의 데이터 여러 개를 인자로 받아 공통 타입으로 변환하는 함수 반환하는 컨테이너는 모든 인자를 공통 타입으로 변환하여 저장함. 전체 원소를 빠르게 순회할 수 있어야 함. #include #include #include template auto build_array(Args&&... args) -> std::array { using commonType = typename std::common_type::type; return {std::forward((Args&&)args)...}; } int main() { auto data = build_array(1, 0u, 'a', 3.2f, false); for (auto i: data) { std::cout

  5. 2021.02.17 [C++] 정수를 입력 받아 각 자릿수의 합 구하기

    정수를 입력 받아 각 자릿수의 합 구하기 정수를 입력 받아 각 자릿수의 합을 구하려면 다음과 같이 사용하면 된다. ■ 알고리즘 1. 입력 받은 수(num)와 10을 나머지 연산을 수행한 후, 결과값을 sum 변수에 계속 더해준다. (sum += num % 10) 2. 입력 받은 수(num)을 10으로 계속 나누어준다. (num /= 10) 3. 입력 받은 수가 0이 될 때까지 1, 2번 과정을 반복한다. ■ 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include using namespace std; int main() { int num, sum = 0; cin >> num; while (num != 0) { sum += num % 10; num /= 10; } cout

  6. 2021.01.20 Python Range() 함수 구현

    C++를 이용하여 Python의 Range 함수를 구현해보았다.

  7. 2020.12.28 0부터 N까지 피보나치 수열 나열하기

    입력을 받으면, 입력한 수까지 피보나치 수열을 나열하는 프로그램 for 문/while 문/do while 문으로 간단하게 구현함.(+ 재귀 함수/ goto 문 이용하기) 시간 복잡도 : O(n) 200 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765

  8. 2020.12.26 숫자 N의 약수의 개수 구하기

    *숫자 N의 약수의 개수 구하기 1부터 N까지 for문을 돌리면서 나누어 떨어지는 수가 있으면(i % N == 0) 카운트를 증가시켜(count++) 최종적으로 카운터를 출력하면 끝. 123456789101112131415161718#include using namespace std; int checkCommonDivisor(int n) { int count = 0; for (register int i = 1; i

  9. 2017.10.10 0부터 n까지의 숫자의 2진수 출력하기

    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 // 0부터 입력받은 수의 2진수 출력하기 #include #include // pow() using namespace std; void main() { int x, num; cin >> num; for (int j = 0; j = 0; --x) { cout x) & 1); } cout

  10. 2017.09.21 배열 요소 정리 : 배열에 담긴 수를 분류하고, 그 개수를 각각 출력하기

    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 #include #define NUM 10 using namespace std; int main() { int tmp, mark = 0, count = 1; int ary[NUM]; int a[NUM], b[NUM]; cout

  11. 2017.05.30 배열 요소 정리

    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 #include using namespace std; int main() { const int num =5; int test[num]; cout

728x90


📖 Contents 📖