최장 증가 부분 수열 Longest Increasing Subsequence (LIS)
이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 어떠한 수열이 주어질 때, 그 수열에서 일부 원소를 뽑아내어 새로 만든 수열을 부분 수열이라고 한다. 그리고 그 부분 수열 중에서 요소들이 오름차순으로 정렬된 가장 긴 수열을 최장 증가 부분 수열이라고 한다. 크게 두 가지 $O...
이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 어떠한 수열이 주어질 때, 그 수열에서 일부 원소를 뽑아내어 새로 만든 수열을 부분 수열이라고 한다. 그리고 그 부분 수열 중에서 요소들이 오름차순으로 정렬된 가장 긴 수열을 최장 증가 부분 수열이라고 한다. 크게 두 가지 $O...
이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 스위핑(Sweeping)은 ‘쓸다’, ‘훑어보다’라는 의미 그대로, 공간이나 직선 상에서 한쪽 끝부터 다른 쪽 끝까지 가상의 선을 이동시키면서 문제를 해결해 나가는 방식이다 가상의 선이 이동하면서 특정 요소와 마주칠 때마다 그...
이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 이분 그래프는 그래프의 모든 정점을 서로 겹치지 않는 두 개의 집합 A와 B로 분할했을 때, 그래프의 모든 간선이 반드시 집합 A의 정점과 집합 B의 정점을 연결하도록 분할할 수 있는 그래프를 말한다. 쉽게 말해, 정점을 두...
이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 신장 트리 Spanning Tree 신장 트리는 그래프에서 사이클 없이 모든 노드를 연결하는 최소한의 부분 그래프를 의미한다. 즉, 그래프의 모든 정점을 포함하는 트리이다. 정점의 개수가 n개이면 간선의 개수는 n-1개이다. 하나의...
이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 플로이드 와샬 알고리즘은 그래프에서 모든 쌍의 최단 경로를 찾는 동적 계획법 기반의 알고리즘이다. 그래프의 모든 노드를 순회하며, 임의의 두 노드 i에서 j로 가는 최단 경로에 특정 노드 k를 경유했을 때, 더 짧은 노드가...
이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 문제 리슨 서버 환경의 게임을 만들고 있는데, 클라이언트 입장에서 애니메이션이 2배속으로 재생되는 문제가 있었다. 모든 애니메이션이 2배속은 아니였고 애니메이션 블루프린트 내의 상태 머신에서 재생하는 걷기/달리기 애니메이션에서만 그러하...
이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 너비 우선 탐색(BFS, Breath First Search)은 그래프 탐색 방법 중 하나이다. 특정 노드에서 시작해서 인접한 노드를 먼저 탐색하는 방법이다. 두 노드 사이의 최단 경로 혹은 임의의 경로를 찾고 싶을 때...
이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 깊이 우선 탐색(DFS, Depth First Search)은 그래프 탐색 방법 중 하나이다. 특정 노드에서 시작해서 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방법이다. 재귀 함수나 스택으로 구현하다. ...
이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 개요 이제까지는 쓰레드를 병행 프로그램을 제작하는 유일한 도구인 것처럼 언급했지만 방법이 하나만 있는 경우는 거의 없다. 특히 GUI 기반 프로그램이나 인터넷 서버에서는 다른 스타일의 병행 프로그래밍이 사용된다. 이런 스타일을 이벤트 기...
이 글은 제 개인적인 공부를 위해 작성한 글입니다. 틀린 내용이 있을 수 있고, 피드백은 환영합니다. 지속적 통합(Continuous Integration, CI)이란? 가장 쉽고 간단하게 설명하자면 CI는 게임을 빌드하고 패키징하는 프로세스를 자동화하는 것이다. 빌드와 일련의 자동 테스트를 통해 변경으로 인해 문제가 발생하지 않는...