본문 바로가기

분류 전체보기84

백준 32205번 - 네모의 꿈(C++) 문제백준, 실버 4, 문제 링크풀이 날짜: 2025.04.28풀이 시간: 15:59~17:37(1시간 38분)사용 언어: C++문제 해설문제: n개의 삼각형과 각 변의 길이가 주어질 때,같은 길이의 변을 맞닿게 붙여서 네모를 만들 수 있는지 확인해보자.이때 각 변의 길이는 최대 100만이다.N의 최댓값은 50만이므로, 가능한 시간 복잡도는 최대 O(NlogN)이다.네모가 만들어지려면 다음 조건을 만족해야 한다. 같은 길이를 갖는 변이 존재해야 한다길이가 같은 변을 이어붙였을 때 나타날 수 있는 두 가지 이상의 방법 중, 사각형이 되는 경우의 수가 있을 때처음 생각했을 때, 길이가 같은 변을 이어붙일 때 사각형이 되는 경우의 수가 존재할 수도 있다고 생각했다. 그래서 모두 검사해 보기로 했다.그렇다면 삼각.. 2025. 4. 28.
언리얼 카툰 액션 게임 Devlog 3: 모델 가져오기 작업 - Material 적용 요약개발 일자: 25.3.11~3.16, 3.27~3.28플레이어를 위한 FBX 모델 가져오기 및 오류 해결모델의 Material 데이터를 직접 매핑해 주기캐릭터 모델의 리깅 확인하기여러 가지로 일이 많아 작성이 늦어졌다…개발하면서 자꾸 막혀서 일지가 좀 쌓이고 나서야 작성할 수가 있는데, 블로그에 일지를 자주 정리해서 지금 개발 중인 로그를 바로바로 올릴 수 있도록 노력해야 할 것 같다.1. 모델 가져오기1.1 블루아카이브 모델(FBX) 임포트 하기저번 시간에 알아봤듯이, 플레이어 캐릭터로는 블루아카이브의 미야코 모델을 사용하기로 했다.모델 링크: https://www.fab.com/listings/e9dfe6b0-71f7-4c31-80f8-28eb0755cd9b저작권 문제는 지난 글 “언리얼 카툰 액.. 2025. 4. 27.
언리얼 카툰 액션 게임 Devlog 2: 캐릭터 및 게임모드 설정 및 캐릭터 모델 허가 요청(블루아카이브) 요약개발 기간: 2월 6일, 3월 11일 + a해당 내용은 캐릭터 모델에 대한 저작권 검토 문제를 포함하고 있습니다.게임의 기초가 되는 캐릭터, 게임모드, 플레이어 컨트롤러에 대한 C++ 클래스 선언하기나중에 해야 할 일로 캐릭터 변경, 애니메이션 문제 해결, GAS 시스템 도입을 고려함추가 도입할 캐릭터 ‘미야코(블루아카이브)’에 대한 저작권 관련 검토하기1. 초기 설정1.1 기본 상속 구조일단 프로젝트의 이름은 애니메이션 스타일의 그래픽을 보여주는 액션 게임이라는 뜻에서, StylizedActionGame이라고 명명했다.해당 프로젝트의 이름 StylizedActionGame을 따 SA를 모든 커스텀 클래스의 접두사로 붙일 예정이다(ex: actor는 ASA…의 꼴로 시작).우선, 캐릭터가 게임의 기초.. 2025. 4. 16.
백준 32291번 - x와 x+1의 차이(증명 포함, C++) 문제백준, 실버 1, https://www.acmicpc.net/problem/32291풀이 날짜: 2025.4.15.풀이 시간: 10:49~11:32(43분)사용 언어: C++문제 해설해당 문제는 (x+1)의 자신을 제외한 약수를 구하는 문제이다.우선, 그에 도달하는 과정을 살펴보자.예제 1의 출력을 보면, x = 998일 때 x+1의 자신을 제외한 약수 1, 3, 9, 27, 37, 111, 333이 정답이 된다.이를 보고 출력이 되는 모든 양의 정수 k는 (x+1)의 약수라고 가설을 세울 수 있다.왜 k는 반드시 (x+1)의 약수인가?가설을 세웠으니 증명해 보자.다만 고등학생 때 배웠던 귀류법을 가지고 야매로 증명했다 보니, 정확하지 않을 수 있다는 점 양해 바란다. 잘못된 점이 있다면 지적해주면 .. 2025. 4. 15.
UE5 머티리얼 인스턴스(Material Instance) 해당 글은 언리얼 엔진 5의 Material Instance에 관한 공식 문서를 읽고 이를 정리한 글입니다. 대부분은 공식 문서에서 가져왔지만, 일부 자료는 현재 프로젝트를 진행하면서 만든 쉐이더나 머티리얼에 대한 사진을 활용하였습니다.오타나 오류가 있다면 지적해 주시면 감사하겠습니다.참고 문서: https://dev.epicgames.com/documentation/ko-kr/unreal-engine/creating-and-using-material-instances-in-unreal-engine#%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0%EA%B7%B8%EB%A3%B9%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0 머티리얼 인스턴스(Material Instan.. 2025. 4. 11.
백준 10897번 - Inherited disease(C++) 문제백준, 골드 5, https://www.acmicpc.net/problem/10897풀이 날짜: 2025.4.9.풀이 시간: 2시간 가량알고리즘 분류: 수학, 구현, 트리사용 언어: C++문제 해설d번째 세대의 인원 수는 d!이며 세대 d ≤ 100이므로, 트리를 직접 만들어서는 해결할 수 없다.따라서 수학적으로 해결해야 한다.몇 번의 실험 후, 다음과 같이 식을 세웠다.l 세대 c번째 자손의 번호 F(l, c)는F(l, c) = [1번째부터 (l-1)세대까지 정민의 수] + [(l-1) 세대에서 ‘현재 선택된 부모’의 손위 형제의 수] * l + c와 같이 정의할 수 있다.(다만, F는 이전 입력에 따라 바뀌므로 엄밀히 말하면 함수라고 할 수는 없다.)예를 들어, 예제 입력에서31 2 1출력은 0번.. 2025. 4. 9.
백준 1206번 - 사람의 수(C++) 문제백준, 골드 5, https://www.acmicpc.net/problem/1206알고리즘 분류: 사용 언어: C++문제 해설해당 문제는 처음에 떠올린 해결 방법이 잘못된 경우였다. 그 때문에 고생하기도 했고, 예상했던 부동소수점의 오차 문제에 대해서도 많이 고민하게 한 문제라고 할 수 있다. 하나의 접근 방법을 떠올리고 나서 이를 검증하는 과정이 중요하다는 것을 알 수 있었다.초기 시도: 최소 공배수로 접근하자(실패)처음에는 각 문항별로 필요한 최소 사람의 숫자를 구한 후, 이들 사이에 최소 공배수를 구하는 식으로 접근하였다.계산 시 floating point로 접근하면 정확하게 숫자가 구해지지 않으므로 Fixed Point 자료구조를 직접 구현하도록 했다.그러나 최소 공배수로 구하면 정확히 값이 .. 2025. 4. 3.
백준 28116번 - 선택 정렬의 이동 거리 문제백준, 실버 3, https://www.acmicpc.net/problem/28116풀이 날짜: 2025.3.22풀이 시간: 19:48~19:55, 21:45~21:56(총 18분)알고리즘 분류: 구현, 정렬사용 언어: C++문제 해설선택 정렬에서 각 수의 이동 거리를 계산하는 문제.n의 크기를 보면 최대 500000이므로, O(n^2)의 알고리즘으로는 해결할 수 없다.그러나 중요한 것은 수를 직접 정렬하는 것이 아니기 때문에 O(n^2)보다 더 빨리 해결할 방법이 있다는 것이다.실제로는 선택 정렬에서 수의 교환 횟수는 (n-1)번이다. 선택 정렬에서 가장 시간이 오래 걸리는 작업은 수의 위치를 파악하는 것으로 매 iteration마다 최대 n번의 비교 연산이 필요하다. 이 비교 연산의 횟수를 낮출 .. 2025. 3. 22.
백준 13460번 - 구슬 탈출 2 1. 문제백준, 골드 1, https://www.acmicpc.net/problem/13460풀이 날짜: 2025.3.21.풀이 시간: 10:52~12:24(1시간 32분)알고리즘 분류: 구현, 그래프 탐색, 시뮬레이션, 너비 우선 탐색(BFS)사용 언어: C++2. 문제 해설상, 하, 좌, 우로 이동시킨다는 것은, 위쪽, 아랫쪽, 왼쪽, 오른쪽으로 옮겼을 때에 대한 가능성 트리 노드를 순회하는 것과 같다고 생각할 수 있다.그러면 해당 문제는 이동횟수를 최소화하는 최단 경로 그래프 탐색 문제로 생각할 수 있으므로, 간선의 개수가 이동 횟수인 지금은 BFS를 통해서 탐색하면 된다.탐색할 수 있는 경우의 수는 4가지이고 깊이는 최대 10이므로(10회보다 더 이동할 경우 탐색하지 않음), 경우의 수는 $4^{.. 2025. 3. 21.