본문 바로가기

전체 글330

5-1. Virtual Address Space 가상 메모리 물리 메모리 (RAM)는 한정적이고 비싸기 때문에 HDD를 사용한다. 필요할 때는 HDD에서 물리 메모리로 다시 불러온다. (보관 -> 복구를 반복) HDD 안에 물리 메모리를 보관하는 공간을 페이징 파일이라고 한다. 가상 메모리는 실제 설치된 물리 메모리보다 더 큰 공간을 사용할 수 있다. Physics Storage란? => 물리 메모리 + 페이징 파일 => 실행 파일과 DLL을 일컫는다. 페이지 운영체제가 메모리를 관리할 때 사용하는 최소 단위 CPU별로 크기가 다르다 ( 인텔 CPU는 32/64bit 모두 4K ) 메모리를 관리할 때 페이지 단위로 관리한다. 예를 들어 10바이트 메모리를 요청하면 OS는 4K (1페이지) 를 할당한다. malloc 같은 메모리 할당 함수들이 할당받는 .. 2022. 9. 16.
3장-6. 재귀 함수 선형 재귀 재귀의 가장 간단한 형태 호출이 발생할 때 최대 하나의 재귀호출이 발생함 #include int LinearSum(int* arr, int n) { if (n == 1) return arr[0]; else return LinearSum(arr, n - 1) + arr[n - 1]; } int main() { int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int sum = LinearSum(arr, 10); std::cout end의 상황에 도달하게 되기 때문 후미 재귀 재귀 함수를 사용할 때는 성능도 생각해야 한다. 컴퓨터 메모리가 부족할 때는 재귀 알고리즘에서 비재귀 알고리즘을 이끌어내야 함 void iterativeReverseArray(int* a.. 2022. 9. 16.
CPP_1. AssortRock 7일차 오프라인 수업_220915 프로그래밍 공부에 대한 이야기 보통 공부의 경우 이해를 하고 문제를 풀면서 연습한다 코딩의 경우 이해가 안될 경우 조금씩 실습하면서 이해하는 과정이 필요하다. 이해하는 과정을 겪고 다시 보면 이해가 됨 숙제에 관한 이야기 이제 숙제 기존 4개에서 2개씩 올라감 숙제의 난이도도 올라가고 수업 내용을 따라가는 것도 어려워졌으므로. 링크드리스트 숙제 노드 삽입 로직에 리스트가 비어있을 때와 마지막 요소에 집어넣을 때 에러 발생 그 에러를 처리할 수 있도록 로직 구현 클래스에 대한 내용 링크드리스트를 구조체로 짜보니 불편한 점이 있다. 링크드리스트 노드 삽입, 삭제 함수를 따로 만들어줘야 한다는 것 이것을 올인원느낌으로 한 곳에 때려박는게 클래스 클래스와 구조체의 가장 큰 차이는 접근제한 지시자 (클래스는 de.. 2022. 9. 16.
CPP_1. AssortRock 6일차 오프라인 수업_220914 코딩테스트 유형에 대한 이야기 문자열 1문제 dfs( 재귀함수 ), bfs( 큐 ) 1문제 그리디 알고리즘 다이나믹 프로그래밍(DP) DP문제는 문제를 만족하는 특정 공식이 있으며 그 공식으로 풀지 않으면 풀리지 않거나 성능이 매우 떨어짐 그래서 뭐가 DP인지 확인하고 DP빼고 푸는 것도 전략 문자열, 재귀, 그리디 중 2개는 맞아야 함 프로젝트 관리에 대한 이야기 협업 툴 중 하나인 노션 사용 팀 단위에선 유료 포트폴리오에 대한 이야기 앞으로 다가올 포트폴리오 제작기간을 고려해서 어떤 게임을 제작할 지 생각하고 이것 저것 플레이해봐야 함 일단 생각으로는 던그리드나 스컬? 바로 떠오르진 않지만 RPG계열 링크드리스트에 대한 소개 링크드리스트는 추가 삽입 삭제가 빈번하게 일어날 때 배열보다 높은 효율을 제.. 2022. 9. 15.