분류 전체보기73 백준 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. 카툰 액션 게임 Devlog 1: 프로젝트 설계하기 언리얼 엔진에 대한 개념을 어느 정도 학습하였다고 생각해서, 본격적으로 직접 개발에 뛰어들어서 공부해 보고자 한다.해당 시리즈는 카툰 스타일의 그래픽을 사용하는 3인칭 액션 게임을 개발해 보는 과정으로, 개발 과정에서 생긴 일들을 개발 일지로 남기는 시리즈가 되겠다.처음 만드는 것이니만큼 볼륨을 최대한 작게 잡고자 했으며, 3개월 이내로 완성하는 것을 목표로 하고 있다. 공부하는 게 목표이므로, 모르는 개념이 나올 때마다 정리하면서 공부해보려 한다. 요약개발 기간: 2월 2일~2월 3일이번 일지에서는 다음을 수행했다.프로젝트 기획 결정프로젝트 설계 규칙 결정: 프로젝트 레이어 및 블루프린트 균형, 사용 아키텍처 결정프로젝트 생성 과정에서 발생한 엔진 버전 문제 해결하기: 5.5 버전 대신 Unreal E.. 2025. 3. 19. 백준 11444번 - 피보나치 수 6(C++) 문제백준, 골드, https://www.acmicpc.net/problem/11444풀이 날짜: 2025.3.17.풀이 시간: 총 3시간 51분사용 언어: C++문제 해설수학을 이용한 문제로, 공식을 모르면 풀 수 없다. 여기서는 도가뉴 항등식을 이용하여야 하며, 이를 활용하여 분할정복을 사용하여야 시간복잡도를 최적화할 수 있다.내가 구했던 식 중 하나가 바로 도가뉴 항등식의 특수해로, a2n에 대한 식까지는 어떻게든 유도했는데 그다음으로 넘어가는 데에 실패하여 다른 글을 찾아보게 되었다.도가뉴 항등식은 피보나치 등식을 활용하여 변형한 것인데, 도가뉴 항등식은am+n=am−1an+aman+1을 말한다(단, an은 피보나치 수열의 n번째 수).도가뉴 항등식과.. 2025. 3. 18. ECS(Entity Component System)란 (DOD와 ECS, ECS와 메모리 구조) ECS가 무엇인지, 언어와 관련 없이 개념을 정리해놓고 싶어서 글을 정리해 봅니다.공부한 바를 제가 이해한 대로 정리한 것이므로, 틀린 점이 있다면 가감 없이 지적해 주시면 감사하겠습니다.해당 글은 특히 다음 영상을 주로 참고하였습니다(https://www.youtube.com/watch?v=7UphiG8UtTg). 1. DOD를 어떻게 적용해야 할까?ECS에 대해 이야기하려면, DOD, 즉 데이터 지향 설계에 대한 이야기를 한번 짚고 넘어가야 한다. ECS란 DOD를 어떻게 적용할지에 대한 고민에서부터 출발한 개념이기 때문이다.데이터 지향 설계(DOD; Data-Oriented Design)란 객체 지향 설계(OOD; Object Oriented Design)에서 발생할 수 있는 비효율적인 데이터 접근.. 2025. 3. 18. 이전 1 2 3 4 ··· 9 다음