전체 글 37

그리디 알고리즘(Greedy Algorithm)

그리디 알고리즘(Greedy Algorithm) 목차 1. 그리디 알고리즘이란? 2. 적용 조건 3. 예시 문제 4. 장단점위의 목차를 클릭하면 해당 글로 자동 이동 합니다. 그리디 알고리즘이란?그리디 알고리즘은 "매 단계마다 가장 최적인 선택(=욕심나는 선택)"을 하는 방식으로 전체 문제의 해답을 찾아가는 알고리즘입니다.즉, 현재 상황에서 가장 좋아 보이는 해를 선택하고, 이 선택이 결국 전체적으로도 최적의 해답이 되기를 기대하는 방식입니다.한 번 선택한 것은 다시 바꾸지 않으며, 국지적으로 최적의 해를 누적해서 전체 최적해에 도달하려고 합니다. 적용 조건그리디 알고리즘은 모든 경우에 정답을 보장하지는 않지만, 다음 두 조건이 충족되면 정답을 보장할 수 있습니다.탐욕 선택 속성 (Greedy Ch..

C++ 2025.05.11

DFS와BFS

DFS와BFS 목차 1. DFS 2. BFS 3. 비교위의 목차를 클릭하면 해당 글로 자동 이동 합니다. DFSDFS는 가능한 한 깊이를 우선적으로 탐색한 후, 더 이상 깊이 갈 수 없을 때 이전 단계로 백트래킹(backtracking) 하면서 다시 다른 경로를 탐색하는 방식입니다. 특징 재귀 또는 스택 자료구조를 이용함경로를 탐색할 때 분기마다 가능한 한 깊이까지 탐색트리나 그래프에서 모든 정점을 탐색 가능경우에 따라 무한 루프 주의 필요 (순환 그래프에서 방문 노드 체크 필수)예시코드 #include #include #include using namespace std;void dfs(int node, const vector>& graph, set& visited) { visited.inser..

C++ 2025.05.11

그래프(Graph)

그래프(Graph) 목차 1. 그래프란? 2. 그래프의 기본 용어 3. 그래프의 종류 4. 그래프 표현 방법5.그래프 탐색 알고리즘위의 목차를 클릭하면 해당 글로 자동 이동 합니다. 그래프란?그래프(Graph)는 여러 객체(정점)가 관계(간선)를 통해 연결된 구조를 의미합니다.소셜미디어 친구 관계, 지도에서 도시 간 거리, 네트워크 구조 등 수많은 현실 문제를 그래프로 표현할 수 있습니다. 그래프의 기본 용어 정점(Vertex): 데이터를 담는 노드 (예: 사람, 도시)간선(Edge): 정점과 정점을 잇는 선 (예: 친구 관계, 도로) 그래프의 종류구분종류설명방향성방향 그래프간선에 방향이 있음 (A ➝ B)무방향 그래프간선에 방향이 없음 (A — B)순환여부순환 그래프사이클 존재 (A ➝ B ➝ C..

C++ 2025.05.09

[프로그래머스 / C++] 체육복

문제설명점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다.예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를 작성..

[프로그래머스 / C++] 숫자 짝궁

문제두 정수 X, Y의 임의의 자리에서 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 합니다(단, 공통으로 나타나는 정수 중 서로 짝지을 수 있는 숫자만 사용합니다). X, Y의 짝꿍이 존재하지 않으면, 짝꿍은 -1입니다. X, Y의 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0입니다.예를 들어, X = 3403이고 Y = 13203이라면, X와 Y의 짝꿍은 X와 Y에서 공통으로 나타나는 3, 0, 3으로 만들 수 있는 가장 큰 정수인 330입니다. 다른 예시로 X = 5525이고 Y = 1255이면 X와 Y의 짝꿍은 X와 Y에서 공통으로 나타나는 2, 5, 5로 만들 수 있는 가장 큰 정수인 552입니다(X에는 5가 3개, Y에는 5가 2개 나..

[UE5] 싱글톤 패턴

하지만 언리얼 엔진 5에서는 UGameInstanceSubsystem을 상속받은 클래스를 만듦으로써 손쉽게 싱글톤 클래스를 만들 수 있다. 참고https://dev.epicgames.com/documentation/ko-kr/unreal-engine/programming-subsystems-in-unreal-engine?application_version=5.3 서브시스템을 사용하는 이유1.프로그래밍 시간이 절약된다2.엔진 클래스 오버라이드를 피할 수 있다.3.이미 바쁜 클래스에 API추가를 피할수 있다.4.사용자에게 친숙한 유형의 노드를 통해 블루프린트로 액세스할 수 있다.5.에디터 스크립팅이나 테스트 코드 작성을 위해 python스트립트에 액세스할 수 있다.6.코드베이스의 모듈성과 일관성을 제공한다 ..

Unreal 2025.04.11

해상도 변경

해상도 변경 Custom Game User Settings 만들고 상속받아서Game User Settings를 상속받는 Settings를 만들어서 .ini 파일에 -Get Game User Settings : 게임 로컬 컴퓨터 설정(해상도,창 모드.확장성 설정 등)을 반환한다-Set Fullscreen Mode : 게임 창 전체 화면 모드에 대한 사용자 설정을 지정한다-Set Overall Scalability Level : 단일 전체 품질 수준을 기반으로 모든 확장설 설정을 한 번에 변경한다.-Set VSync Enabled : vsync에 대한 사용자 설정을 지정한다-Set Screen Resolution : 게임 화면 해상도에 대한 사용자 설정을 픽셀 단위로 지정합니다. Game User Setti..

Unreal 2025.04.02

사운드 옵션과 Localization

Localization 현지화 참고https://dev.epicgames.com/documentation/en-us/unreal-engine/localization-overview-for-unreal-enginehttps://dev.epicgames.com/documentation/en-us/unreal-engine/localization-overview-for-unreal-engine  Localization(현지화) 및 Internationalization(국제화)는 '현지화'의 산물로 결합되는 두가지의 개념이다.하지만 그 둘은 별개의 것으로, 언리얼 엔진에서는 다르게 처리한다. 언리얼의 현지화 시스템은 '텍스트'유형을 중심으로 하는 반면, 국제화 지원은 유니코드용 국제 구성요소(ICU) 라이브러리를..

Unreal 2025.04.01

UE5 슈팅게임 프로젝트 KPT

UE5 슈팅게임 프로젝트 KPT  1. Keep 2. Problem 3. Try  Keep 1. 컨텐츠가 다양해서 좋았다. 2. 아이템의 구조가 좋았다. 3. 미션매니저 데이터 테이블 등의 코드 패턴구조가 좋았다. 4. 깃플로우 전략사용한점이 좋았다. Problem 1. 시간부족으로 인해 하드코딩과 매직넘버를 많이 사용했다. 2. 최적화에 신경을 쓰지 못했다. 3. 깃 사용에 미숙함으로 인해서 시간낭비와 대역폭 문제가 많이 발생하였다. 4. cpp파일과 BP의 역할을 분리해서 사용하지 못했다. 5. 업무분담의 미숙으로 인해 효율적으로 작업을 하지 못했다.  Try 1. 기획단계에 조금 더 정성을 들여서 시간분배와 역할분배를 조금더 잘 할수있을 것 같다. 2. 서로의 진행사항을 조금더 명확하게 공유하여 중..

TIL 2025.03.07

이진탐색 트리&레드-블랙 트리

이진탐색 트리&레드-블랙 트리 목차   1. 이진탐색트리 2. 레드-블랙트리  이진 탐색 트리이진 탐색 트리 는 이진 트리 기반의 탐색을 위한 자료구조입니다. 정의1. 모든 원소의 키는 유일한 키를 가진다.2. 왼쪽 서브 트리 키들은 루트 키보다 작다.3. 오른쪽 서브 트리의 키들은 루트의 키보다 크다4. 왼쪽,오른쪽 서브 트리 모두 이진 탐색 트리이다 검색, 삽입, 삭제가 빠르다는 장점이 있다. 다만 1,2,3,4,5,6을 트리에 순서대로 넣는다고 가정했을 경우 아래와 같이 한쪽에 편향된 트리가 만들어지게 되는데 이러한 문제를 해결한것이 레드-블랙 트리이다.  레드-블랙 트리레드-블랙 트리는 이진탐색트리의 특징을 그대로 따르며 균형잡힌 이진탐색트리이다 정의1. 루트는 블랙이다2. 모든 리프(NIL)는 ..

C++ 2025.02.18