10주차 - 동적 프로그래밍
동적 프로그래밍 정의 재귀 성질을 가진 문제를 중복 호출을 줄이며 해결하는 기법 사용 예시 재귀적 방법이 좋은 예시 정렬 알고리즘(퀵정렬, 병합정렬…) 팩토리얼 구하기 DFS 그래프 ...
" />
동적 프로그래밍 정의 재귀 성질을 가진 문제를 중복 호출을 줄이며 해결하는 기법 사용 예시 재귀적 방법이 좋은 예시 정렬 알고리즘(퀵정렬, 병합정렬…) 팩토리얼 구하기 DFS 그래프 ...
B트리(다진 검색 트리) 정의 디스크의 접근 단위: 블록(페이지) 디스크에 한번 접근하기 위해서는, 수십만의 명령어를 처리하는 시간과 비슷함 검색트리가 디스크에 있으면 트리의 높이를 줄이는 것이 중요함 다진 검색 트리가 균형을 유지하게 하여, 디스크 접근 횟수를 줄이는 것 특징 하나의...
이진 검색 트리 관련 용어 레코드 개체에 대한 모든 정보를 포함하고 있는 저장 단위 예시) 사람의 레코드: 주민번호, 이름, 주소, 휴대폰 번호…. 필드 레코드에서 각각의 정보를 나타내는 부분 검색키(키) ...
정렬 고급 정렬 알고리즘 종류 평균적으로 \(θ(nlog^n)\)의 시간이 소요됨 병합정렬 퀵정렬 힙정렬 병합 정렬 배열을 절반으로 나눔 각 배열별로 재귀함수를 이용해 정렬 한 후, 병합함 수행시간: \(θ(n log^n)\) 퀵 정렬 평균적으로 효율적인 성능을 가짐 리스트 내의 ...
정렬 기초적인 정렬 알고리즘 평균적으로 \(θ(n^2)\)의 시간이 소요됨 종류 선택정렬 버블정렬 삽입정렬 선택 정렬 각 루프마다 최대값을 탐색함 최대원소와 맨 오른쪽 원소를 교환하고, 맨 오른쪽 원소를 제외함 하나의 원소만 남을 때까지 위의 루프를 반복함 수행시간: \(θ(n^2)\) 버블 정렬 ...
충돌 충돌 설정하기 설정 방법 프로젝트 개인 설정 -> 콜리전 탭으로 이동 Object Channel 종류 Ignore 충돌을 무시함 Overlap 부딫히는 순간 겹쳐짐 Block 부딫히는 경우 물체가 튕김 프리...
점화식과 점근적 복잡도의 분석 점화식 정의 어떤 함수를 자기보다 더 작은 변수에 대한 함수(재귀 함수)와의 관계로 표현한 것 점화식: \(T(n) = 2T(n/2) + 오버헤드\)1 크기가 n인 병합 정렬 시간은 크기 n/2의 병합 정렬을 2번 실행하는 시간에 나머지 오버헤드를 합친 시간임 점화식의 점근적 분석 방법...
Swift 문법 상수 및 변수 선언하기 상수 선언방법 let 자료형 입력은 필수가 아님 예시) let s1: Int = 10 //Int형 상수로 10으로 초기화 됨 let s2: String = "Monday" //String형 상수로, "Monday"로 초기화 됨 let ...
알고리즘 바람직한 알고리즘 명확해야 함 명확성을 해치지 않으면, 일반 언어로 사용해도 무방함 가능하면, 이해가 쉽고 간명하게 해야함 지나친 기호의 사용은 명확성을 떨어뜨림 알고리즘 분석의 필요성 같은 문제에서도 알고리즘 마다 효율이 크게 차이 남 정렬에서 입력의 크기가 n일...