전체 글
-
[키워드 정리] STL 반복자키워드 정리 2025. 10. 25. 14:12
왜 STL은 “반복자(Iterator)”를 쓰나?STL 이터레이터 = “포인터처럼 쓸 수 있게 만든 객체”대부분의 STL 이터레이터는 포인터가 하던 행위를 흉내내도록 연산자 오버로딩이 되어 있다.*it (역참조)it->x (멤버 접근) = (*it).x++it, it++ (다음 요소)--it (이전 요소, 가능한 이터레이터만)it + n, it - n, it[n] (임의 접근이 가능한 경우만; 예: vector)컨테이너마다 순회 방식이 제각각이면, 알고리즘(정렬/검색/복사 등)도 컨테이너마다 다시 써야 하기 때문에 이를 해결하기 위해 반복자라는 공통 인터페이스를 둬서, 알고리즘은 “반복자 쌍”만 받도록 설계하였다고 한다.→ 컨테이너와 알고리즘 분리(Decoupling) + 재사용성↑ + 최적화 유지.s..
-
[키워드 정리] UI 관련 내용 정리카테고리 없음 2025. 10. 24. 03:08
DPI란?DPI는 물리적 인치당 점 밀도이고, 운영체제는 이를 바탕으로 논리적 픽셀 스케일을 정해 UI 크기를 보정한다.그래서 같은 100px이라도 4K 모니터(고DPI)에서는 더 크게 스케일되어 읽기 쉬워진다.개념 정리해상도(Resolution): 1920×1080처럼 “픽셀 개수” 그 자체.DPI/PPI(밀도): 1인치 안에 픽셀이 몇 개 있나(=물리 밀도). 고DPI면 같은 100px이라도 실제 크기가 더 작게보인다.즉, DPI 스케일이 1.5면, 버튼 200×60(논리)은 화면에서 300×90(실제)로 렌더돼서 고해상도에서도 물리 크기(체감 크기)를 비슷하게 맞춰준다.논리 px vs 실제 px논리 px: 우리가 UI를 설계할 때 쓰는 기준 단위(버튼 200×60 같은 값).실제 px: 모니터에 찍..
-
[키워드 정리] 레드블랙트리키워드 정리 2025. 10. 24. 00:00
레드-블랙 트리 특징레드-블랙 트리는 균형 이진 검색 트리임.삽입/삭제/탐색이 O(log n)을 보장.C++의 std::map/set은 정렬 연관 컨테이너라 보통 RB-tree로 구현되어 정렬 순회·lower_bound/upper_bound·구간 질의가 빠름.반면 unordered_map은 해시라 평균 O(1)이지만 정렬·범위 질의가 불가. map은 노드 기반이라 삽입해도 다른 이터레이터가 거의 무효화되지 않는 안정성이 장점임.핵심 불변식RB-트리는 삽입/삭제 후에 색칠(빨강/검정) 규칙 + 회전으로 트리를 다듬어 높이를 O(log N) 으로 유지한다.루트·NIL은 검정루트→모든 리프 경로의 검정 노드 수(=black height) 가 같다 → 경로 길이 차이가 심해질 수 없음빨강 노드의 자식은 모두 검..
-
[키워드 정리] FSM키워드 정리 2025. 10. 14. 21:31
FSM(유한 상태 머신)이란?상태(Idle/Chase/Attack…)와 전이(조건)를 표로/코드로 정의하는 패턴이다.작고 반응이 빠른 AI(경계/추격/공격/사망)엔 간단·예측 가능·비용 낮음이 장점이지만, 상태 수가 늘면 전이 폭발이 온다.언리얼의 관련 도구AnimBlueprint State Machine : 애니메이션 전용 상태머신(전이 규칙, 블렌딩).StateTree(UE5) : 범용 계층형(HFSM) 상태머신 시스템(작업/조건/전이 구성, AI/퀘스트/인터랙션에 적합).Behavior Tree : 전통 FSM은 아니지만 AI 의사결정에 자주 쓰는 대체 구조.Gameplay Ability System(GAS) : 태그/쿨다운/활성화로 상태 제어를 데이터적으로 구현 가능.그 외 : GameplayTa..
-
[UE5] 위젯 컴포넌트Unreal 2025. 10. 13. 23:56
UMG로 만든 2D 위젯(버튼, 텍스트 등)을 3D 월드 안의 평면(또는 곡면) 위에 붙여 보이게 해주는 컴포넌트이다.언리얼 엔진에서 WidgetComponent를 사용하면, 월드 내 특정 위치에 붙여놓고, 카메라 각도에 따라 회전하거나 크기가 달라지게 할 수 있다.★ 위젯 컴포넌트는 앵커 개념과 직접적 연관 없음. 화면이 아니라 월드에 박는 거라 트랜스폼이 전부다.★화면 UI(뷰포트 UMG)와 차이구분뷰포트 UMG(일반 HUD)위젯 컴포넌트좌표계화면(스크린-픽셀)월드 좌표(위치/회전/스케일)배치앵커/패널(캔버스, 그리드)액터에 컴포넌트로 붙임(트랜스폼)카메라 영향화면 고정거리/원근/가림 영향 받음상호작용마우스/터치라인트레이스 + 위젯 인터랙션 필요(아래 참조)SetWidgetSpace 함수 : Scre..
-
[코딩 테스트] 오픈 채팅방코딩테스트 2025. 10. 10. 03:05
매일매일 코딩테스트 오늘의 잔디채우기는프로그래머스 Lv.2 - 오픈 채팅방문제 설명카카오톡 오픈채팅방에서는 유저들이 “입장(Enter)”, “퇴장(Leave)”, “닉네임 변경(Change)” 명령을 수행한다.단, 닉네임을 변경해도 과거의 채팅 기록은 모두 최신 닉네임으로 반영되어야 한다.즉, 기록(record) 리스트가 주어질 때, 실제 채팅방에서 보여질 메시지 목록을 순서대로 출력하는 문제이다.기능 요약입력record (문자열 벡터, 각 원소는 "명령어 아이디 닉네임")처리 로직stringstream으로 명령어, 아이디, 이름을 분리하여 처리데이터 구조unordered_map : id → 최신 닉네임 저장핵심 로직Enter/Change 시 map 업데이트, Leave 시 로그만 기록출력 로직최종 lo..
-
[코딩 테스트] 파일명 정렬코딩테스트 2025. 10. 9. 22:52
매일매일 코딩테스트 오늘의 잔디채우기는프로그래머스 Lv.3 - 표 병합문제 설명파일명들이 문자열 형태로 주어질 때,다음 기준에 따라 파일명을 정렬하는 문제이다.HEAD: 숫자가 나오기 전까지의 문자열 (대소문자 구분 없음)NUMBER: HEAD 뒤에 이어지는 숫자 부분 (최대 5자리)TAIL: 나머지 부분 (정렬에는 사용하지 않음)정렬 기준:HEAD 기준 사전순(대소문자 구분 X)HEAD가 같으면 NUMBER 기준 숫자 오름차순HEAD, NUMBER가 모두 같으면 입력 순서 유지기능 요약입력files (문자열 벡터)문자열 분리각 파일을 HEAD, NUMBER, TAIL로 구분비교 기준HEAD → NUMBER 순으로 비교 (대소문자 무시)자료구조구조체 File { string head, int number..
-
[코딩 테스트] 튜플코딩테스트 2025. 10. 6. 17:50
매일매일 코딩테스트 오늘의 잔디채우기는프로그래머스 Lv.2 - 튜플문제 설명카카오가 만든 튜플 문자열이 주어진다."{{2},{2,1},{2,1,3},{2,1,3,4}}" 중괄호 {}로 감싼 숫자 집합들이 “순서대로 누적”되어 만들어진 튜플(tuple) 구조이다.이 문자열에서 실제 튜플의 원소 순서를 찾아 벡터로 반환하는 것이 목표다.기능 요약 {2} → {2,1} → {2,1,3} → {2,1,3,4} … 처럼 앞에서부터 누적해서 만들어진 집합 구조이다.즉, 가장 많이 등장한 숫자가 튜플의 가장 앞 원소가 된다.입력 조건입출력 예시풀이 C++내 풀이문자열 파싱:{, }, ,를 제외하고 숫자만 추출.카운팅:숫자가 등장할 때마다 map 혹은 unordered_map에 count++ 저장.정렬:등장 횟수(va..