코딩 테스트 2-5강
효율적인 코드 구현하기
겉보기는 같은 동작이라도 효율이 서로 다를 수 있음을 이해할 수 있는 시간.
벡터와 덱은 둘 다 임의 접근이 가능하다는 점 때문에 비슷한 컨테이너로 보여지지만 둘의 내부가 완전히 다르므로 이를 인지하고 사용해야 한다!
벡터의 메모리 전략
배열과 동일하게 메모리가 연속적으로 할당된다. 따라서 별다른 조치 없이 임의 접근이 가능하다.
덱의 메모리 전략
맨 앞의 원소와 맨 뒤의 원소를 가리키는 포인터가 있고, 내부적으로 데이터는 여러 개의 청크 라고 불리는 영역으로 쪼개져 있다.
데이터는 연속적이지 않을 수 있다.
맨 앞에 원소를 삭제(추가) 할 경우
벡터는 원소들이 모두 움직여야 하므로 O(N)연산이 필요하지만 덱은 청크를 나눠 관리하므로 O(1) 연산이 필요하게 된다.
덱은 시작과 끝의 값을 저장하고 내부를 불연속적 청크로 관리한다.
임의 접근을 하는 경우
둘 다 O(1)의 값을 가지지만 덱은 각 청크가 불연속 적이고 이를 내부적으로 관리하는 map 이 사용되기 때문에 덱이 불리하다.
컨테이너의 내부 정렬을 하는 경우 데이터를 레드`블랙 트리를 사용해 관리한다.
맵-트리
비정렬 맵 - unordered 해시->정렬(X) 삽입/삭제/정렬 모두 O(1)이다.
O(1)<O(logN)<O(N) - 시간 소요량
문자열을 결합하는 경우.
+연산자 - 그냥 안 쓰는 게 좋다.
+= 연산자 와 append()
코딩 테스트 3-1강
재귀 함수의 구조와 작동 원리를 이해한다. 이를 이용해 문제를 해결하는 방법을 학습한다.
트리 순회 그래프, 탐(?)
동적(?) 백트래킹
재귀란 자기 자신을 정의하거나 호출하는 것을 말한다.
(recursive call)을 말하며 함수가 실행 중에 자기 자신을 다시 호출하는 방식의 함수를 의미한다.
자기 자신을 계속 호출해도 종결이 되어 프로그램이 종료될 수 있게 설계되어야만 한다.
믿음=사고의 전환
구하고자 하는 팩토리얼을 구하는 함수가 있다고 가정
현재 문제는 더 작은 크기의 해를 이용해 해결
더 이상 줄일 수 없는 경우에는 직접 해를 구함.
N fact(N) = fact(N-1)*n 뒤의 함수로 만드는 것이 재귀 단계.
(n-2)! (n-1)! n
fact(N) = fact(n-1) *N
N이 0또는 1이면, 1을 반환
재귀는 여러번 써보며 남에게 설명해줄 수 있을 정도가 되는 게 좋다.
수학적 귀납법과 재귀의 관계 - 도미노와 유사한 개념
첫 번째 도미노가 넘어진다. - 기저 조건
K번째 도미노가 넘어지면 K+1번째 도미노가 반드시 넘어진다. - 재귀 호출
첫 번째 도미노는 스스로 넘어져야 한다. - 즉 가장 작은 문제는 직접 풀어야 한다.
stack overflow - 함수가 오류가 있지 않아도 메모리 한계에 걸려 발생할 수 있는 오류.
A called B called B end A end - 함수의 실행 정보가 저장되어 B end 이후 A called를 다시 실행하지 않고 A end 가 나오는 예시.
스택(쌓임)구조 A B C순서대로 들어가면 C부터 나오는 것.
대부분의 반복 작업은 반복문으로 구현이 가능하지만 재귀를 사용하는 것이 더 효율적이거나 자연스러울 수 있다.
LIFO (Last In First Out)구조
깊이 우선 탐색(DFS) - 스택, 재귀 를 둘 다 사용 가능하나 재귀를 사용해야 하는 케이스가 더 많다.
분할 정복 알고리즘으로 해결하는 문제의 경우
병합 정렬 - 수를 쪼개고 다시 재 정렬 하는 것.
피보나치 수열을 재귀 함수로 계산하는 예시
메모이제이션 - DP
재귀
기저 조건 - 더 이상 분할되지 않는 종료 조건
재귀 단계 - 자기 자신을 호출하여 문제를 해결하는 과정
언리얼 2-1
추가해주는 킷의 버전이 맞지 않는 케이스는 버전을 맞춰주는 방법 밖에 없다.(설치 필요[5.4.4])-차일 까지 설치를 완료 해두자!
약 9분까지가 1-11의 숙제 해설파트
블루프린트-액터 를 이용한 움직이는 액터 생성 방법
컴포넌트를 사용한 Interp movement
블루프린트-폰 을 이용한 움직이는 액터 생성 방법
블루프린트-액터를 이용하지만 컴포넌트를 사용하지 않고 같은 동작을 하게 만드는 방법
델타세컨즈-프레임은 유저 환경에 따라 변화할 수 있는 값이기 때문에 변화가 적을 시간을 기준으로 잡아주는 변수 값.
breanch
timeline 을 이용해서 빠르게 갔다가 고정된 속도로 돌아오는 액터 생성하기
월드/로컬 백터를 이용한 회전 차이
========================================================================================
언리얼 엔진을 이용해 오브젝트와 레이아웃 정리하기

강의에서 사용된 에셋을 사용해 만들면 보이는 기본 배치의 모습


간단하게 바닥에 텍스처를 부여하고 오브젝트들을 추가로 배치한 후의 모습
레이아웃의 경우 화면이 넓지 않아서 기본 값이 사용하는데 더 편리하지만 콘텐츠 드로어를 사용해야할 때만 잠시 고정과 해제를 하는 것이 유용했다.
'TIL' 카테고리의 다른 글
| 25.11.12일자 - TIL (0) | 2025.11.12 |
|---|---|
| 25.11.11일자 - TIL (0) | 2025.11.11 |
| 25.11.07일자 - TIL (0) | 2025.11.07 |
| 25.11.06일자 - TIL (0) | 2025.11.06 |
| 25.11.05일자 - TIL (0) | 2025.11.05 |