분류 전체보기
-
자료구조...6일지 2020. 9. 27. 17:38
ArrayList.cpp 생성자, 속성 구현 생성자를 구현했으며 기타 함수의 바디도 만들었다. 데이터를 테스트 하기 위한 PrintInfo 메서드를 추가했다. ArrayList.h #pragma once #include #include class ArrayList { public: #pragma region 생성자 ArrayList(size_t capacity = 10); ArrayList(const ArrayList& other); #pragma endregion #pragma region 속성 // ... #pragma endregion #pragma region 메소드 // ... #pragma endregion private: #pragma region 변수 // ... #pragma endreg..
-
자료구조...5일지 2020. 9. 25. 13:53
선형 리스트 구현 선형 리스트의 이해를 기반으로 C#의 ArrayList를 조금 간략화하여 int만 저장할 수 있는 ArrayList를 만든다. 구현이 필요한 메서드 및 속성은 다음과 같다. 생성자 ArrayList() 비어있고 기본 초기 용량을 가지는 인스턴스 생성 ArrayList(ArrayList&) 다른 ArrayList의 데이터로 인스턴스 생성 ArrayList(int) 비어있고 지정한 초기 용량을 가지는 인스턴스 생성 속성 Capacity 저장될 수 있는 총 크기 Count 실제 사용되고 있는 크기 Item[int] 저장된 데이터의 접근 및 설정 메서드 Add(data) 마지막 위치에 데이터 삽입 AddRange(ArrayList&) 마지막 위치에 다른 ArrayList의 데이터를 모두 삽입 ..
-
자료구조...4일지 2020. 9. 24. 08:58
순차 자료구조 데이터를 순서대로 저장하고 인덱스를 부여하여 관리하는 자료구조를 말한다. 배열을 이용해 리스트를 구현한 선형 리스트(또는 ArrayList)를 포함한다. 선형 리스트 데이터가 메모리에 물리적으로 연속적으로 저장되기 때문에 리스트 중간에서 데이터를 삽입하거나 삭제하는 연산을 하는 경우 데이터를 옮긴 후 동작을 처리해야 하는 오버헤드가 발생한다. - 원본 데이터 인덱스 0 1 2 3 4 데이터 10 20 30 40 - 리스트 끝에 데이터를 삽입하는 경우 인덱스 0 1 2 3 4 데이터 10 20 30 40 50 빈 공간에 데이터를 삽입하고 종료한다. - 리스트 중간에 데이터를 삽입하는 경우 인덱스 0 1 2 3 4 데이터 10 20 30 40 40 인덱스 0 1 2 3 4 데이터 10 20 3..
-
자료구조...3일지 2020. 9. 23. 08:57
자료구조 구현을 위한 프로그래밍 언어의 요소 배열 같은 타입의 데이터를 메모리에 연속적으로 저장하여 인덱스를 통해 접근할 수 있도록 만든 자료구조 포인터 저장된 데이터의 메모리 주소를 가리키는 변수 구조체 여러 타입의 데이터를 묶어 사용하는 사용자 정의 자료형 배열 1차원 배열 동일한 타입의 데이터가 선형으로 나열된 배열 문자열 문자 타입의 데이터로 이루어진 1차원 배열 다차원 배열 동일한 타입의 데이터가 2차원 이상으로 나열된 배열 포인터 자료구조 작성에 포인터를 사용할 때의 이점은 다음과 같다. 주소를 저장하는 값이기 때문에 크기가 일정하다. 32비트 빌드 환경 4 bytes, 64비트 빌드 환경 8 bytes 자료구조를 수정하는 경우 메모리 수정 없이 포인터가 가리키는 주소의 변경 만으로 처리가 가..
-
자료구조...2일지 2020. 9. 22. 08:40
추상 자료형 자료의 형태와 관계된 연산을 수학적으로 정의한 것을 말하며 구체적인 구현을 포함하지 않는다. 이러한 추상화를 통해 알고리즘 정의를 단순화할 수 있다. 자료 연산 추상화 추상 자료형 알고리즘 정의 구체화 자료형 프로그램 구현 알고리즘의 표현 방법 자연어 사람이 사용하는 언어를 사용한다. 일관성과 명확성을 유지하기 어렵다. 순서도 순서도의 작성 규칙에 따라 도식화한다. 복잡한 알고리즘의 표현이 어렵다. 프로그래밍 언어 특정 프로그래밍 언어로 작성하여 추가적인 구체화 작업이 필요하지 않다. 해당 언어를 모르는 사람이 이해하기 어려울 수 있으며 다른 언어에서 사용이 필요한 경우 다시 번역하여 변환하는 추가 작업이 필요하다. 가상 코드 프로그래밍 언어의 형태를 갖춘 추상화된 가상의 언어로 표현한다. ..
-
자료구조...1일지 2020. 9. 22. 00:05
자료 구조란? 데이터를 효율적으로 접근 및 사용이 가능하도록 하는 데이터의 조직, 저장, 관리 방법을 말한다. 알고리즘이란? 자료구조로 작성된 데이터를 처리하는 방법을 말한다. 자료 구조의 분류 선형 구조 자료 간 연결 관계가 1:1 관계인 구조 스택, 큐, 덱 배열과 연결 리스트가 포함되기도 한다. 비선형 구조 계층 구조 혹은 망 구조 트리, 그래프 자료의 표현 방법 컴퓨터는 0과 1로 구성된 2 진수를 사용하며 n 개의 비트로 2ⁿ 개의 상태를 표현 가능하다. 1 개의 비트 → 2¹ = 2 개의 상태 표현 (0, 1) 2 개의 비트 → 2² = 4 개의 상태 표현 (00, 01, 10, 11) 3 개의 비트 → 2³ = 8 개의 상태 표현 (000, 001, 010, 011, 100, 101, 110..
-
Unity - 메모리 프로파일러보관함 2020. 8. 30. 11:58
우선 기존에 유니티 2018 버전 이전에 사용할 수 있었던 메모리 프로파일러를 공유하던 사이트가 사라짐에 따라 유니티 2018 이전 버전에서는 메모리 프로파일러를 이용할 수 없게 됐음을 알린다. 메모리 프로파일러 설치 방법 [Window] - [Package Manager]를 눌러 패키지 매니저 창을 열어준다. 패키지 매니저에서 Advanced라고 적혀있는 메뉴를 누른 뒤 [Show preview packages]를 누른다. 메모리 프로파일러가 프리뷰 버전이기 때문에 설정해주지 않으면 리스트에 보이지 않는다. 이후 리스트에서 Memory Profiler를 찾아 클릭 후 Install 버튼을 눌러 설치해 주면 된다. 메모리 프로파일러 설치 후 실행 방법 설치가 완료된 이후에는 기존 Profiler와 동일한..
-
Unity - 메모리 프로파일러(모듈)보관함 2020. 8. 5. 08:06
메모리 프로파일러 모듈의 구성 먼저 메모리 프로파일러는 CPU 프로파일러와는 달리 프레임 차트를 거의 보지 않는다. 이유는 다음과 같다. 메모리의 특성 메모리는 CPU와는 달리 특정 지점에서 피크가 생기지 않기에 전체적인 수치를 낮춰야 한다. 매니지드 언어의 특성 C#의 경우 매니지드 언어이기 때문에 사용자가 메모리 언로드 시점을 정하는 것이 아닌 GC를 Garbage Collect(이후 GC)를 통해 이뤄지므로 메모리의 변화가 GC를 기준으로 이뤄진다. 그렇기에 메모리 프로파일링에서는 메모리 프로파일러 모듈의 세부 정보창을 기준으로 작업을 진행하게 된다. 메모리 프로파일러 모듈의 세부 정보창은 Simple모드와 Detailed 모드로 나뉜다. 이를 간략하게 설명하면 다음과 같다. Simple 모드 메모..