코딩 테스트 이해하기 (1-3강)
*자료구조/알고리즘
스스로 해답을 추구하는 것이 가장 좋다.
정답을 맞춘 후 다른 사람의 정답을 찾아보는 것도 중요하다.
60분 정도는 문제를 쭉 보면서 이해하고 요구 사항을 파악해 해결하는 방법을 찾는 시간을 가지는 것이 좋다.
알고리즘의 효율성(2-1강)
*빅오 표기법에 대해 알 수 있는 시간
알고리즘의 목적은 "대규모 입력 값"이 들어오는 문제를 "효율적"으로 해결하는 것.
알고리즘의 측정 방법은 절대 횟수와 연산 횟수로 측정할 수 있다.
시험에서는 연산 횟수를 기준점으로 삼는다!
연산의 종류
반복문의 수행 횟수 // 비교/대입/산술 연산자 사용 횟수
특정 지점 이후 항상 큰 값을 점근적 상한이라고 한다.
가치 있는 상한을 위해서는 최소한의 상한을 구하는 것이 중요하다.
*최소한의 상한은 O(빅 오) 바고 부른다.
최소한의 상한은 가장 많은 영향을 주는 부분만 남기고 "상수"를 제거하면 된다!
영향을 주는 순서
팩토리얼 함수>지수 함수> 다항함수> 로그함수와 다항함수의 조합> 다항함수> 로그함수> 상수
대략 1초에 1억 번 정도 연산이 가능하다고 가정하면 편하다. (정확한 수치가 필요한 내용이 아니다)
#include <iostream>
using namespace std;
int linearSearch(int arr[], int size, int target) {
for (int 1 - 0; 1 <size; 1++) {
if(arr[i] == target) {
return i; // 원소를 찾은 경우, 그 위치를 반환
}
)
return -1; // 원소를 찾지 못한 경우, -1 반환
}
arr = array 자료구조
코딩 테스트 2-2강
목표 기본 문법을 익힐 수 있는 시간/ 구현 시 자주 실수하는 부분을 학습하여 실수를 줄일 수 있다.
변수 는 데이터를 저장하고 처리하는데 사용되는 구성요소.
어떤 종류의 데이터를 저장할 것인지 결정해야 하는데 이를 데이터 타입이라고 한다.
변수에 사용할 이름을 정해야 하며 선언한 변수의 이름은 유일해야 한다.
변수
자주 사용되는 변수 int-십진수 / double- 소수점(15) , float- 소수점(7~8) (둘의 차이는 정밀도) / bool - true false / char - 캐릭터(하나의 문자)
스칼라 타입은 정수형(int), 부동 소수형(float 혹은 double), 논리형(bool), 문자형(char)가 있다.
int는 음과 양의 정수와 0을 표현하는데 일반적으로 이것만으로 충분하다(약-20~20억 표현가능)
+ unsigned를 사용하면 음수를 제거하고 40억 까지 표현 가능, long long도 가능은 하다.
배열 은 하나의 이름으로 동일한 타입의 변수를 묶어서 관리할 수 있다.
예시 - score (학생 점수 관리 예제)
임의 접근이 가능하다.
스칼라 타입처럼 대입할 수 없다.
문자열 찾기 -find() 메서드 사용
문자열의 추가(결합)하려면 + 또는 += 연산자(append를 사용할 수도 있고 이를 더 추천함)를 사용할 수 있다.
length(), size(), empty()
clear(), append(), insert() s.append(str), s.insert(pos, str)
erase(), replace(), substr() s.erase(pos len), s.replace(pos len str), s.substr(pos len)
길이 반환, 길이 반환(앞과 같다), 문자열이 비었으면 true else false
해당 문자열을 비움, 문자열의 끝에 str을 추가, pos위치에 str삽입
pos부터 len만큼 삭제, 지정된 부분을 str로 교체(pos부터 len만큼), pos부터 len길이의 부분 문자열 반환
string
논리 연산에서 양쪽 피연산자가 모두 평가될 것이라고 가정하고 코드를 짜기 쉽지만 하나만 평가되어 예상하지 못한 동작이 발생하거나 디버깅이 어려워 질 수 있다.
off by one 의도한 횟수보다 한번 더 많거나 적게 반복되거나, 의도한 경계보다 앞이나 뒤의 요소를 한 위치만큼 벗어나는 오류.
실행한 후 아주 큰 음수나 양수가 출력 된다면 이 상황을 의심해야 한다.
결과가 아닌 중간 값의 오버플로
2*a*3/10 -> 10으로 나누기 전 오버플로가 발생해 오류 출력.
언리얼 1-10강
print text - 텍스트(좌상단)를 띄우는 블루 프린트
언리얼 블루 프린트에서 사용되는 변수
부울 - 참/거짓
바이트 - 1byte -8bit
인티저 - 32bit - 4byte 정수
인티저64 - 64bit
플로트 - 소수점을 가진 숫자
네임 - 글자(이름)
스트링/텍스트 - 글자이긴 한데 찾는 영역에 차이가 있다(좀 더 많이 연산이 사용됨)
벡터 - 3차원 값
로테이터 - 벡터와 유사함 회전과 관련이 있다.
트렌스폼 - 위치, 회전, 스케일 값에 관한 정보
제 위치에 맞는 값 만을 연결(대입) 할 수 있다.
알트+드래그 - 셋 노드 컨트롤+드래그 - 갭 노드 가 생성된다.
HP를 셋팅하는 방법
값을 넣어주는 것을 하드 코딩이라고 한다.
subtract - 빼기 divide - 나누기
0으로 나누면 0이 출력 되긴 하지만 무한이 되기 때문에 이렇게 되지 않게 하는 것이 중요하다.
비교 연산
== - != -
< less > gra(ter) <= >= gre
논리 연산
and(and boolin) or not(값을 반전) xor(두 값이 서로 반대여야 참)
언리얼 1-11강
흐름 제어, 반복문
if seq(uence) filp flop / wile, fall(?) loop
branch if문처럼 쓰인다
sequence 순서대로 노드가 실행되도록 정리해주는 역할
filp flop 반복되는 내용을 설정 하기 위해
사용된 지문들
left mouse button, keyboard R button, set
print text, formet text
while loop - 조건이 안될 때 까지 반복하는 선언문 - 문제가 발생하기 쉽다.
for loop - 시작과 끝이 정해져 있는 선언문
이너머레이터
열거형으로 사용하는 이넘타입(Eitem - 예제)
4-1 총알 발사 제한(0이하일 때 발사 제한)/불필요한 재장전 방지(30발을 소지하고 있을 때 재장전이 안되도록 설정)
4-2 while loop 로 구구단 구현
*index가 아니라 condition를 사용해야 함에 유의
=====================================================================================================
팀 과제
과제 영상 요약
언리얼 엔진 에디터 기본 - 강좌 소개
레이아웃을 조정할 수 있다.
뷰포트 창/월드 아웃라이너/디테일 패널/콘텐츠 브라우저/메인 툴바/에디터 개인설정 창/프로젝트 세팅 창/월드 세팅 패널
3인칭 사용됨(기본값으로)
아웃라이너
디테일 패널- 월드 내에 있는 오브젝트들에 대한 정보들을 볼 수 있다.
콘텐츠 브라우저 - 어떤 콘텐츠가 포함되어 있는지 확인 할 수 있고 그 내부에 어떤 내용물들이 있는지도 알 수 있다.
패널 위치를 옮길 수 있고 숨기거나 고정할 수 있다.
우하단에서 소스를 조정했던 기록을 확인하고 조정할 수 있다.
뷰포트 창 - 엔진이 제공하는 다양한 방향에서의 정보들을 한눈에 볼 수 있는 기능이 탑재되어있다.
파이썬을 이용한다고 가정한 강의.
대체적으로 배급된 튜터님의 강의와 유사하나 기능들에 대한 설명이 좀 더 세세하게 제공되어있다.
주요 기능 게임을 만드는 데에 필요한 시각적 자료들을 지원해준다.
영상에서 사용된 프로젝트는 3D 게임의 기본 값이었다.
뷰포트 창, 월드 아웃라이너, 콘텐츠 브라우저
뷰포트 창 - 레벨을 시각적으로 보여주는 창
월드 아웃라이너 - 씬의 모든 액터를 계층형 트리 뷰로 보여주는 외곽에 배치된 창
콘텐츠 브라우저 - 에디터에서 콘텐츠 에셋을 생성, 임포트, 정리, 보기, 수정하는 데 사용되는 영역
'TIL' 카테고리의 다른 글
| 25.11.10일자 - TIL (0) | 2025.11.10 |
|---|---|
| 25.11.07일자 - TIL (0) | 2025.11.07 |
| 25.11.05일자 - TIL (0) | 2025.11.05 |
| 25.11.04일자-TIL (0) | 2025.11.04 |
| 내가 생각하는 게임 개발자-TIL (0) | 2025.11.03 |