일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 백준 1103번 c++
- 2468 c++
- 백준 c++ 2468번
- 백준 1103번 게임
- Lv.3
- 2870번 c++
- 플레이어 이동
- 프로그래머스
- c++
- Lv2
- 백준 c++ 2870번
- 백준 17070번 c++
- 유니티
- 코딩테스트
- 2870번
- Beakjoon
- 수학숙제
- 2870번 수학숙제
- 2870번 수학숙제 c++
- 백준 2870번
- 백준 1103번
- Unity
- 17070번
- 코테
- 백준 17070번
- Algorithm
- C#
- 백준
- dfs
- 오브젝트 풀링
- Today
- Total
목록분류 전체보기 (207)
주녘공부일지
UniRx란?- .NET Reactive Extension을 유니티에 맞게 개량- Linq 스타일 쿼리 연산자를 사용하여 비동기 및 이벤트 기반 프로그램을 위한 라이브러리- 스트림 생성, 오퍼레이터로 가공, 구독 사용 스트림 (Stream)- 연속적인 이벤트(메시지)의 흐름- 분기, 병합 가능 / IObservable로 구독 가능namespace System{ public interface IObserver { void OnCompleted(); void OnError(Exception error); void OnNext(T value); } public interface IObservable { IDisposable S..
클로저(Closure)란?- 외부 함수의 변수를 내부 함수가 참조할 때 발생- 이 경우, 메서드 레퍼런스로 외부 함수의 변수가 힙에 할당됨 ( 외부 변수 캡처 ) UniRx 테스트 중 겪은 예시)for(int i = 0; i OnClickTest(i));}- OnClickTest 메서드는 for문에 있는 하나의 i를 참조하게 되어 i = btns.Length 값인 4가 들어가게 되는 것 for(int i = 0; i OnClickTest(index));}- index는 매번 새로 선언되어 값을 할당받기 때문에 해결 가능
렌더링 파이프라인(Rendering Pipeline)가상 3D 세계의 존재하는 물체를 카메라가 비추는 것을 기준으로 2D 이미지로 추출하는 과정 1단계 : 로컬 스페이스(Local space) // 모델링 스페이스 다른 모델들과 전혀 상관이 없는 각각의 모델을 구성하고 있는 고유 공간- 삼각형의 리스트를 정의하는데 이용하는 좌표시스템이다.- 3D 상의 모든 물체는(카메라 포함) 고유의 로컬 좌표계를 가지고 있다. 2단계 : 월드 스페이스(World space) 각 로컬 스페이스의 모델들을 하나의 장면(공간)으로 구성하는 단계- 개별적인 좌표를 가지고 있는 물체들이 하나의 공간안에 모여있을 때 이 공간을 월드라고 하며, 각각의 오브젝트들의 이동, 회전 변환 등을 포함하는 월드변환을 통해서 옮겨지게 된다. ..
1) 오브젝트 풀링- 게임 플레이 중에 반복적으로 생성/파괴되며 사용되는 비용(가비지, 등) 부담을 줄이기 위해 사용- ResourceMgr에게 생성/파괴 요청된 오브젝트가 풀링 대상이 되는 오브젝트라면 ObjectPoolMgr에게 위탁public class ObjectPoolMgr{ class Pool { ... } Dictionary pools = new Dictionary(); Transform root; int poolCount = 5; public void Init() { if (root == null) { root = new GameObject { name = "@Pool_Root" }.transform; ..
https://www.acmicpc.net/problem/2468핵심 아이디어 및 정답 코드- 특정 높이 이상의 인접한 영역을 묶었을 때 가장 많은 영역으로 쪼개지는 경우를 구하는 문제- 깊이 우선 탐색(DFS) 알고리즘을 이용하여 최소 ~ 최대 범위에서 가장 많은 영역이 생기는 경우를 구함+ BFS로 풀어도 무관해보이지만, 모든 경우를 구해야 하므로 DFS가 더 유리할 수 있음 + Memo) Find-Union 알고리즘 + a 로 한번 풀어볼 것 ( 시간 복잡도를 많이 줄일 수 있음 ) -> 20ms -> 0ms DFS 풀이 정답 코드https://godgjwnsgur7.tistory.com/47 [Algorithm C#] BFS, DFS ( + Back Tracking )1. BFS(Breadth F..
플레이 영상해피스케치의 요청에 따라 모션 감지를 이용한 AR게임 프로토타입 모델- 여러 가지 미니게임 스테이지를 구현하여 2명의 사용자가 대전을 하는 AR 멀티 게임- PC버전으로 선 구현 후 채택 시 AR 멀티 게임으로 확장 스테이지 관련 StageController는 Stage를 제어 및 관리- Stage는 콘텐츠에 따라 SingleStage와 MultiStage를 상속받아서 구체화하며 스테이지를 구현- 구체화된 스테이지 클래스는 OnReceiveStageParam 메서드로 스테이지의 정보가 변경됨을 알림 Stage는 스테이지 진행 상황에 대한 정보와 플레이어를 관리- 싱글 스테이지 : 하나의 스테이지에 2명의 플레이어가 소환되어 플레이하는 환경- 멀티 스테이지 : 동일한 스테이지 2개의 각각의 플..
1. 발생한 이슈 런타임에서 각 스테이지에 따라 다른 SkyBox, Ohter Settings의 Fog 세팅 값을 변경해야 하는 상황에서 발생한 이슈로, SkyBox를 런타임에 세팅했을 때, Lighting, Fog 값이 갱신 및 적용되지 않아 화면이 어두워지는 현상이 발생2. 발생 원인 - 전역 조명(GI)- Lighting이 어두워지는지는 이유는 전역 조명(GI)에 있다고 함https://discussions.unity.com/t/loading-scene-additively-causes-change-in-lighting/687635위 링크 내용에 따르면, 유니티의 스카이박스는 Light를 "Sun"으로서 하늘을 어떻게 렌더링할지 정한다고 함+ 스카이박스가 렌더링되고 Lighting이 계산되는데, 이 ..
https://www.acmicpc.net/problem/2870핵심 아이디어 및 정답 코드- 주어진 문자열 중에 정수들을 찾아내어 오름차순으로 정렬해 출력하는 문제- 문제에서 최대 100자리를 가진 숫자가 나올 수 있기 때문에 정수형이 아닌 문자열로 받아옴 - 000 -> 0 - 001 -> 1 - 100 -> 100 + 문자열은 길이가 같을 경우 비교하면 더 큰 숫자가 크게 나옴 정답 코드#include #include #include #include using namespace std;vector strVec;void FindNumStr(string str){ for (int i = 0; i 0) strVec.push_back(temp); } }}..
https://www.acmicpc.net/problem/17070핵심 아이디어 및 정답 코드- 파이프를 옮길 수 있는 경우의 수를 구하는 문제- 접근 방식에 따라 DFS, DP로 풀 수 있음 맨 위에부터 DP, DFS(도착지에서 탐색), DFS(출발지에서 탐색)1. DFS 풀이https://godgjwnsgur7.tistory.com/47 [Algorithm C#] BFS, DFS ( + Back Tracking )1. BFS(Breadth First Search) - 너비 우선 탐색최단 경로, 임의의 경로를 찾고 싶을 때, 등에 사용- 큐(FIFO) 사용 // 큐를 이용 public void BFS(int index) { Node root = nodes[index]; Queue queue = new ..
https://www.acmicpc.net/problem/1103핵심 아이디어 및 정답 코드- 게임을 진행하면서 최대로 이동할 수 있는 횟수가 몇인지 구하는 문제 -> 모든 경우의 수를 구해야 하므로, 깊이 우선 탐색(DFS)를 이용 -> 단, 이미 왔던 좌표라면 무한 루프를 돌 수 있으므로 -1를 리턴 (BackTracking) - 모든 경우의 수를 구하다보면 중복 연산이 많아질 수 있음 -> 동적 계획법(DP)을 통해 중복되는 연산을 줄임 즉, DP + DFS BackTracking 문제 + 영역을 벗어거나 구멍에 의해 동전이 떨어지는 좌표로 이동하는 것도 이동횟수 https://godgjwnsgur7.tistory.com/109 [Algorithm C#] 동적 계획법(DP) / Memoizatio..