분류 전체보기
-
JUNGOL...22일지 2020. 11. 17. 19:38
Language_Code/배열2/형성평가1 문제 승지는 주사위 놀이를 하다가 주사위를 10번 던져서 각 숫자가 몇 번씩 나왔는지 알아보려고 한다. 한번 던질 때마다 나온 주사위의 숫자를 입력받아서 각 숫자가 몇 번씩 나왔는지 출력하는 프로그램을 작성하시오. 입력 예 5 6 3 4 5 5 2 2 4 6 출력 예 1 : 0 2 : 2 3 : 1 4 : 2 5 : 3 6 : 2 FormativeArray201.h #include FormativeArray201.cpp void FormativeArray201::Code() { int dice[6]{}; int var; for (int i = 0; i > var; dice[var - 1]++; } for (int i = ..
-
자료구조...33일지 2020. 11. 16. 21:51
스택 데이터를 하나의 접근점을 통해 순차적으로 저장하는 자료구조로 마지막에 입력된 데이터가 가장 먼저 사용되는 후입 선출(Last In First Out) 구조를 가진다. - 삽입(Push) 연산 스택에 데이터를 삽입하고 삽입된 데이터를 최상단으로 표시한다. * 원본 데이터 인덱스 0 1 2 3 : TOP 4 데이터 10 20 30 40 인덱스 0 1 2 3 4 : TOP 데이터 10 20 30 40 50 - 인출(Pop) 연산 최상단에 존재하는 데이터를 인출하고 최상단의 다음에 존재하는 노드를 최상단으로 표시한다. 인덱스 0 1 2 3 : TOP 4 데이터 10 20 30 40 50 ┗→ 50
-
JUNGOL...21일지 2020. 11. 14. 11:41
Language_Code/배열2/자가진단1 문제 영문 대문자를 입력받다가 대문자 이외의 문자가 입력되면 입력을 중단하고 영문 대문자들에 대하여 1번 이상 입력된 각 문자와 그 문자의 개수를 사전 순으로 출력하는 프로그램을 작성하시오. 입력 예 A B C F F F B Z ! 출력 예 A : 1 B : 2 C : 1 F : 3 Z : 1 Hint! C, C++ 사용자 힌트입니다. 'A'는 0번 'B'는 1번 'C'는 2번 … 'Z'는 25번에 count 한다. 'A'는 메모리에 65로 저장된다. 따라서 입력받은 문자에서 65 또는 'A'를 빼면 해당문자의 개수를 저장할 번호가 된다. ('B'-65=1 또는 'B'-'A'=1) 1을 다시 'B'로 바꾸어 출력하려면 char(1+65) 또는 char(1+'A'..
-
-
인터프리터...14일지 2020. 11. 12. 22:05
토큰 처리 Tokenizer.h #pragma region 키워드표 struct Keyword { const char* str; TokenKind type; }; Keyword keywordList[] = { {"if", TokenKind::If}, {"else", TokenKind::Else}, {"end", TokenKind::End}, {"print", TokenKind::Print}, {"(", TokenKind::LeftParenthesis}, {")", TokenKind::RightParenthesis}, {"==", TokenKind::Equal}, {"!=", TokenKind::NotEqual}, {"", TokenKind::Grater}, {"=", TokenKind::GraterEqu..
-
인터프리터...13일지 2020. 11. 11. 22:18
파일 처리 및 토큰 처리 준비 Tokenizer.h #pragma region 파일 처리 std::ifstream ifs; bool OpenFile(char* path) { ifs.open(path); if (ifs.is_open()) { return true; } return false; } #pragma endregion #pragma region 토큰 처리 string emptyString{ "" }; Token NextToken() { int ch{ NextCharacter() }; if (ch == EOF) { return Token(TokenKind::EndOfToken, emptyString); } while (isspace(ch)) { ch = NextCharacter(); }; Token..
-
연결 자료구조 - 원형 연결 리스트(Circular Linked List)프로그래밍 기초/자료구조 2020. 11. 11. 08:45
원형 연결 리스트 원형 연결 리스트는 마지막 노드가 처음 노드를 가리키는 환형 구조가 되는 연결 리스트로 단일 연결 리스트와 이중 연결 리스트에 모두 적용이 가능하다. - 단일 연결 리스트 적용 예 - 이중 연결 리스트 적용 예 ※ 리스트 순회 시 다음 노드가 첫 노드인 경우 순회를 종료하면 된다. 원형 연결 리스트 구현 준비 원형 연결 리스트는 단일 연결 리스트 혹은 이중 연결 리스트의 삽입과 삭제, 기능 연산에서 리스트의 끝을 확인하는 방식을 변경하여 구현할 수 있다. 단일 연결 리스트 혹은 이중 연결 리스트를 원형 연결 리스트로 변경하기 위해 다음의 메서드를 수정해야 한다. 생성자 복사 생성자 메서드 데이터 삽입 메서드 데이터 삭제 메서드 기능 메서드 단일 원형 연결 리스트 구현 SinglyLink..
-
자료구조...32일지 2020. 11. 10. 20:22
기능 메서드 구현 자료구조를 효율적으로 사용하기 위한 기능 메서드를 구현한다. DoublyCircularLinkedList.cpp /// /// 지정한 값을 포함한 노드가 존재하는지 확인한다. /// /// 찾을 값 /// 값의 존재 여부 bool DoublyCircularLinkedList::Contains(int value) { if (m_head != nullptr) { DoublyCircularLinkedListNode* curNode{ m_head }; do { if (curNode->m_data == value) { return true; } curNode = curNode->m_next; } while (curNode != m_head); } return false; } /// /// 지정한..