일지
-
자료구조...44일지 2020. 12. 5. 13:29
큐 스택과는 달리 하나의 입구와 하나의 출구를 가진 자료구조로 선입선출(First In Fist Out) 구조를 가진다. - 삽입 연산(EnQueue) 큐에 데이터를 삽입하고 삽입된 데이터를 마지막으로 표시한다. * 원본 데이터 인덱스 0 : FIRST 1 2 3 : REAR 4 데이터 10 20 30 40 인덱스 0 : FIRST 1 2 3 4 : REAR 데이터 10 20 30 40 50 - 인출 연산(DeQueue) 첫 데이터를 인출하고 해당 데이터 다음에 존재하는 데이터를 최상단으로 표시한다. 인덱스 0 1 : FIRST 2 3 4 : REAR 데이터 10 20 30 40 50 ┗→ 10 ※ 순차 자료구조로 큐를 구현하는 경우 삽입과 인출을 반복하면 전체 공간 중 사용하지 못하는 공간이 증가하는 ..
-
JUNGOL...28일지 2020. 12. 4. 12:11
Language_Code/함수3/형성평가1 문제 자연수 N을 입력받아 1부터 N까지 출력을 하되 n-1번째 값은 n번째 값을 2로 나눈 몫이 되도록 하는 프로그램을 작성하시오. 입력 예 100 출력 예 1 3 6 12 25 50 100 Hint! n/2를 호출한 후에 n을 출력하도록 하는 재귀함수를 작성한다. FormativeFunction301.h #include class FormativeFunction301 : public Base { private: void Function(int n); }; FormativeFunction301.cpp void FormativeFunction301::Code() { int n; std::cin >> n; Function(n); } void FormativeFun..
-
인터프리터...22일지 2020. 12. 2. 12:02
역 폴란드 표기법 프로그램 스택, 우선순위 작성 ReversePolish.h #pragma once #include #pragma region 우선순위 설정 int Order(const int ch) { switch (ch) { case '*': case '/': return 3; case '+': case '-': return 2; case '(': return 1; } return -1; } #pragma endregion #pragma region 스택 처리 #define STACK_SIZE 20 int stack[STACK_SIZE]; int stackHead; void Push(int n) { if (stackHead >= STACK_SIZE) { throw std::out_of_range("s..
-
JUNGOL...27일지 2020. 12. 1. 16:37
Language_Code/함수3/자가진단1 문제 20 이하의 자연수 N을 입력받아 재귀함수를 이용해서 문자열 “recursive”를 N번 출력하는 프로그램을 작성하시오. 입력 예 3 출력 예 recursive recursive recursive BasicFunction301.h #include class BasicFunction301 : public Base { private: void Function(int n); }; BasicFunction301.cpp void BasicFunction301::Code() { int n; std::cin >> n; Function(n); } void BasicFunction301::Function(int n) { if (n n; Function(n); } void ..
-
인터프리터...21일지 2020. 12. 1. 15:20
역 폴란드 표기법을 사용한 식의 분석 식의 우선순위에 따라 식을 후치 기법으로 변환하는 것을 역 폴란드 표기법이라고 하며 정렬된 식은 괄호와 우선순위가 제거되며 앞에서부터 순서대로 읽어서 사용할 수 있게 된다. 식 역폴란드 표기법 한글로 표기 a + b a b + a에 b를 더한다 a + b + c a b + c + a에 b를 더한 결과에 c를 더한다 a + b * c a b c * + a에 b와 c를 곱한 결과를 더한다 (a + b) * c a b + c * a에 b를 더한 결과에 c를 곱한다 변환 패턴과 변환 방법 역 폴라드 표기법으로 변환할 때 우선순위가 더 높은 토큰이 입력되는 경우 변환을 잠시 미루고 우선순위가 높은 토큰을 먼저 처리한다. 이를 적용해 변환하는 방법은 다음과 같다. 요소의 우선순..
-
JUNGOL...26일지 2020. 11. 30. 14:29
Language_Code/함수2/형성평가1 문제 정수 N을 입력받고 다시 N개의 정수를 입력받아 내림차순으로 정렬하여 출력하는 프로그램을 작성하시오. (1 ≤ N ≤ 15, 입력과 출력, 정렬은 모두 함수를 이용할 것) 입력 예 5 12 35 1 48 9 출력 예 48 35 12 9 1 FormativeFunction201.h #include class FormativeFunction201 : public Base { private: int* Input(int& n); void Sort(int n, int arr[]); void Print(int n, int arr[]); }; FormativeFunction201.cpp void FormativeFunction201::Code() { int n; int..
-
인터프리터...20일지 2020. 11. 30. 14:22
식의 표현 인터프리터에서는 어휘 분석으로 토큰을 확정한 뒤 구문 분석으로 해석하며 실행한다. 이때 구문 분석의 중심이 되는 것이 식의 분석이다. 식을 분석하는 방법은 크게 세 가지가 존재한다. 중치 기법 연산자가 값 중간에 나타나는 방식. (a + b) 후치 기법 연산자가 값 뒤에 나타나는 방식 (a b +) 전치 기법 연산자가 값 앞에 나타나는 방식 (+ a b) 컴파일러나 인터프리터에서는 필요한 값을 저장해 두고 연산자가 등장했을 때 필요한 개수만큼 로드해 사용할 수 있으므로 후치 기법이 적절하다. 더보기 참고문헌 만들면서 배우는 인터프리터하야시 하루히코 상세보기