분류 전체보기
-
JUNGOL...51일지 2021. 3. 24. 19:56
Beginner_Coder/도형만들기2/홀수 마방진 문제 홀수 정사각형의 크기를 입력 받은 후, 가로 세로 대각선의 합이 일정한 마방진을 출력하는 프로그램을 작성하시오. 마방진이란 1부터 N*N까지의 숫자를 한 번씩만 써서 정사각형에 배치하여 가로와 세로, 그리고 대각선의 합이 같도록 하는 것이다. 다음의 순서에 따라 각 위치에 차례대로 값을 넣는다. 1. 첫 번째 숫자인 1을 넣는 위치는 첫 번째 행 가운데이다. 2. 숫자가 N의 배수이면 바로 아래의 행으로 이동하여 다음의 수를 넣고 3. 그렇지 않으면 왼쪽 위로 이동하여 다음의 숫자를 넣는다. 만약 행이 첫 번째를 벗어나면 마지막 행으로 이동하고, 열이 첫 번째를 벗어나면 마지막 열로 이동한다. 입력 형식 정사각형의 크기 n(2부터 100사이의 홀..
-
자료구조...70일지 2021. 3. 24. 19:52
이진 탐색 트리 삽입 메서드 구현 더블 포인터 구현을 싱글 포인터 구현으로 변경 BinarySearchTree.cpp /// /// /// /// 추가할 값 void BinarySearchTree::Insert(int value) { if (m_root == nullptr) { m_root = PopNode(value); return; } Node* target{ m_root }; while (target != nullptr) { if (target->m_data == value) { break; } if (target->m_data > value) { if (target->m_left == nullptr) { target->m_left = PopNode(value); m_count++; } target..
-
자료구조...69일지 2021. 3. 23. 20:48
이진 탐색 트리 삭제 메서드 구현 BinarySearchTree.cpp /// /// BinarySearchTree에서 지정된 값을 가진 노드를 제거한다. /// /// 제거할 값 void BinarySearchTree::Delete(int value) { if (m_root == nullptr) { return; } Node* target{ m_root }; Node* parent{ nullptr }; while ((target != nullptr) && (target->m_data != value)) { parent = target; if (target->m_data > value) { target = target->m_left; } else { target = target->m_right; } } ..
-
자료구조...68일지 2021. 3. 22. 18:09
이진 탐색 트리 삭제 메서드 구현 BinarySearchTree.cpp /// /// BinarySearchTree에서 지정된 값을 가진 노드를 제거한다. /// /// 제거할 값 void BinarySearchTree::Delete(int value) { Node** target{ &m_root }; Node* parent{ nullptr }; while (*target != nullptr) { if ((*target)->m_data == value) { break; } if ((*target)->m_data > value) { parent = *target; target = &((*target)->m_left); } else { parent = *target; target = &((*target)->..
-
JUNGOL...50일지 2021. 3. 17. 15:22
Beginner_Coder/도형만들기2/대각선 지그재그 문제 정사각형의 크기를 입력 받은 후 대각선으로 지그재그 형태인 다음과 같은 형태로 출력하는 프로그램을 작성하시오. (1) 가장 왼쪽 위의 좌표부터 차례로 숫자를 대입시킨다. (2) 대각선을 기준으로 계속 지그재그 모양으로 채워져야 하며 숫자는 1씩 증가하는 형태로 채워나가야 한다. 입력 형식 정사각형의 크기 n(1부터 100사이의 정수)을 입력받는다. 출력 형식 위에서 언급한 형태의 지그재그 모양의 정사각형의 내부 숫자를 차례로 채운 후의 모습을 출력한다. 숫자 사이는 공백으로 구분한다. 입력 예 3 | 2 출력 예 1 3 4 | 1 3 2 5 8 | 2 4 6 7 9 | Hint! 이동 순서를 잘 생각해보면 다음과 같이 6가지 형태..
-
자료구조...67일지 2021. 3. 17. 12:29
이진 탐색 트리 삽입 메서드 구현 BinarySearchTree.cpp #pragma region 생성자 /// /// 비어있는 DoublyLinkedList를 생성한다. /// BinarySearchTree::BinarySearchTree() : m_count(0), m_max(0), m_min(0), m_root(nullptr), m_free(nullptr) { } /// /// 메모리 누수를 막기 위해 동적 생성한 노드들을 제거한다. /// BinarySearchTree::~BinarySearchTree() { Clear(); while (m_free != nullptr) { Node* curNode{ m_free }; m_free = m_free->m_right; delete curNode; } ..
-
자료구조...66일지 2021. 3. 16. 21:02
이진 탐색 트리 구현 준비 구현에 필요한 메서드 및 속성은 다음과 같다. 속성 Count BinarySearchTree에 포함된 데이터의 개수 Max BinarySearchTree에 추가된 데이터 중 가장 큰 값 Min BinarySearchTree에 추가된 데이터 중 가장 작은 값 메서드 Search(data) 데이터가 저장되어 있는지 여부 확인 Insert(data) BinarySearchTree의 규칙에 맞게 데이터를 저장 Delete(data) 일치하는 데이터를 제거하고 실행 결과를 반환 Clear() 저장되어 있는 모든 데이터 삭제 이진 탐색 트리 구현 연결 자료구조를 이용하여 이진 탐색 트리를 구현한다. BinarySearchTree.h #pragma once #include class Bin..
-
JUNGOL...49일지 2021. 3. 15. 12:40
Beginner_Coder/도형만들기2/문자마름모 문제 마름모의 한 변의 길이 N을 입력 받아 아래와 같이 문자 마름모를 출력하는 프로그램을 작성하시오. (1) 첫 번째 행의 중앙부터 출발하여 시계 반대 방향으로 'A' 부터 차례대로 채워나간다. ('Z'다음에는 다시 'A'가 된다.) (2) 바깥 부분이 다 채워지면 두 번째 행 중앙부터 다시 같은 작업을 반복한다. (3) 같은 방법으로 마름모를 다 채워지도록 하여 출력한다. 입력 형식 마름모의 한변의 길이 N(N의 범위는 100 이하의 양의 정수)을 입력받는다. 출력 형식 주어진 형태대로 한 변의 길이가 N인 문자 마름모를 출력한다. 문자 사이는 한 개의 공백으로 구분한다. 주의 : 출력 시 널 문자('NULL', '\0')는 출력 되지..