어제 학원 수료가 끝나고 알고리즘의 부족함과 셰이더가 재밌어서 하루 할당량을 정해서 공부 해나갈 생각입니다. 알고리즘 문제, 셰이더 코드 하나, 일단 이렇게 해볼 생각입니다. 좀 더 할수도 있습니다. 일단 알고리즘을 하기 전 유니티 C#을 쓰다보니 와서 C++을 이용한 문제를 풀어볼 생각입니다. 기초 100제에서 하루 20문제로 손 좀 풀고 백준에서 단계별로 학습해볼 생각입니다. 모든 문제는 C++로 풀이하였습니다. 2557번 Hello World #include using namespace std; int main() { printf("Hello World!"); return 0; } 10718번 We Love Kriii printf("강한친구 대한육군\n강한친구 대한육군"); 10171번 고양이 pr..
조건 파악을 무엇보다 빠르게 하는게 중요합니다. 이게 속도면에서 많이 차이날듯합니다. using System; using System.Collections.Generic; public class Solution { public int solution(int n, int[] lost, int[] reserve) { int answer = 0; List Reservelist = new List(reserve); List LostList = new List(lost); List removelist = new List(); // 여벌체육복이 있지만 도난당한 학생 리스트 작성 foreach(var val in Reservelist) { foreach(var val2 in LostList) { if(val == v..
참고 자료 - ArrayList와 LinkedList란 무엇인가? (tistory.com) ArrayList(선형리스트) 개념 선형 리스트는 배열과 같이 연속되는 기억장소에 저장되는 리스트를 말한다. 연접 리스트(Dense List) 또는 축차 구조(Sequential Structure)라고도 한다. 차이 배열은 고정된 크기의 연속된 배열요소들의 집합이므로 배열을 초기화 할 때 총 배열 요소의 수를 미리 지정해야 한다. 하지만 경우에 따라 배열요소가 몇 개나 필요한 지 미리 알 수 없는 경우가 있으며, 중간에 필요에 따라 배열을 확장해야 하는 경우도 있다..NET에는 이러한 동적 배열을 지원하는 클래스로 ArrayList와 List이 있다. 이들 동적 배열 클래스들은 배열 확장이 필요한 경우, 내부적으로..
C# 배열(Array) 자료형[] 배열명 = new 자료형[크기]; int[] arr = net int[i] {4, 9, ...} 첨자값(index, 인덱스)은 항상 0부터 시작한다. 출력 방법 Console.WriteLine("arr[0] = {0}", arr[0]); 여러 배열 선언 방법 int[] arr = {4,9,19,2}; / int[] arr = new int[]{4,5,1,23,12}; System.Array (using System) 선언 시 Array만 적으니 다른 코드 공부 시 혼란 주의, 아래는 Array 함수 일부만 정리했습니다. get 함수 Rank(차원 수,길이를 가져옵니다. 1차원은 1 2차원은 2를 반환), Length(배열 길이) set 함수 ================..
프로그래밍 언어를 다루는 사람이라면 배워야하고 필수적인 것입니다. 그래서 이번엔 자세히 공부해볼 생각입니다. 그럼 실전에 들어가기 앞서 이론적인 부분을 공부하고 들어가는게 좋은것 같습니다. 들어가기 앞서 자료구조가 무엇인지 알고리즘이 무엇인지 확실히 잡고 가겠습니다. 참고 영상 링크 본 사람은 봤겠지만 정리 잘해주셨고 자료구조, 알고리즘에 기본적인 베이스를 깔아줍니다. 본 내용 토대로 게임에 접목시켜 이해 해보도록 하겠습니다. 일단 자료 구조 먼저입니다. 자료구조 - 서비스나 어플리케이션을 메모리에 어떻게 구조적으로 잘 정리해서 담아두고 관리하고 최종적으로 가장 효율적인 방식으로 필요한 데이터에 빠르게 접근 하고 필요한 접근, 수정, 삽입, 삭제 할 수 있도록 도와줍니다. 현재 지식으로 정리하자면 게임 ..
Enemy를 코드를 정리하여 다시 만들어볼 생각입니다. 중간 링크는 공부 자료입니다. 간단 설명으로 부족한 부분을 채우고 필요할때 보기 위함입니다. 들어가기 전 생각하고 가야할껄 한번 되새기고 작성 중에도 가끔 보게 적어놓도록 하겠습니다. KISS - Keep It Simple, Stupid : 간결하게 만들어야 그걸로 복잡한걸 만들 수 있다. (한가지 기능(함수), 한가지 책임(클래스), UI는 UI만) HCL - High Cohesion Louse Coupling : 높은 응집도(Cohesion), 낮은 결합도 (단어 설명) 간단하게 설명하면 비슷한것들 끼리 뭉쳐야하고 서로의 의존도는 낮아야 합니다.(오해 할 수 있으니 단어 설명을 보는걸 추천드립니다.) DRY - Don't Repeat Yourse..
이제부터 렌더링 파이프라인 (Rendering Pipeline) 설명입니다. DirectX 그래픽스 파이프라인 순서 및 기본 설명과 기본 지식 블로그의 자료로 정리했습니다. 그래픽스 파이프라인(Graphics Pipeline) 과정 랜더링 파이프라인 (Rendering Pipeline) 과정 바로 위 그림 출처 : [3D] 그래픽스 파이프 라인 (tistory.com) 그림은 완벽히 이해 후 다시 만들어서 수정할 예정 알아 보던 중 헷갈리게 두개의 그래프가 나왔습니다. 차이는 그래픽스 파이프라인은 렌더링 파이프라인 속에 포함 되어있으며 같다라고도 볼 수 있습니다. 유니티 파이프라인 간략 설명(reto0) 2/3 유니티 파이프라인 간략 설명(reto0) 3/3 자세한 설명 1. 3D 모델 구축 ( 로컬 스..
현재 json을 구름 IDE의 클라우드 서버에 쏴줘야하는데 난관에 봉착했다. 로컬 디스크에서 연결하는 방법은 많으나 클라우드로 쏴주는건 찾기가 힘들고 부분 이해가 힘들어서 구름 IDE에 질문을 하였고 운영자분이 친절히 답변해줬다. "json 파일만 넘겨주는 방식이라면 REST API 서버를 띄우고 curl를 사용해서 전송하는 게 좋을 거 같습니다." 이게 답변 내용이다. 요기서 REST API를 이용하면 된다는 힌트를 얻었고 REST API를 조금 정리하고 가자고 생각한다. 몇개 찾아봤고 자세한건 링크 해놓겠다. 조금 읽어보는것도 괜찮을꺼 같다. 집가는 길에 읽어봤는데 제대로 이해할려면 좀 걸릴꺼같다. REST API 제대로 알고 사용하기 : NHN Cloud Meetup (toast.com) 그래서 간..
셰이더 기초 - 고냥이도 이해하는 그래픽스와 셰이더 기초편 - 1/3 by 우덜 :: WD ART. 위 링크는 가볍게 보기 좋은것 같아 가져왔습니다. 툰 셰이더 튜토리얼 - .Unity Toon Shader Tutorial - Roystan 툰 셰이더 튜토리얼을 해보고 적용 시킬 생각입니다. (기본적인 글의 그림은 위 링크가 출처입니다.) 일단 기본적인 유니티 셰이더로 조명과 상호작용하는 Surface Shaders(서피스 셰이더)를 일반적으로 사용합니다. 방향성 조명 (Directional lighting) 조명 데이터를 받기 위해 코드를 추가합니다. Tags { // 포워드 렌더링에 사용, 앰비언트 라이트, 주 방향 광원, 버텍스/SH 라이트 및 라이트맵이 적용 "LightMode" = "Forwar..
화면에 색을 칠하는(Shading) 프로그램 동작방식 : 렌더링 파이프라인의 일부를 유연하게 변경하는 프로그램 렌더링 파이프라인의 일부 중 프로그래머가 수정하게 열어주었고 그걸 셰이더라고 부른다. 셰이더가 없을 땐 버텍스 3개를 받아서 삼각형을 만들면 다 똑같은 삼각형이였지만 셰이더로 인해 여러가지 결과가 출력이 가능하게 된것이다. 유니티는 서피스 셰이더, 버텍스/프래그먼트 셰이더, 고정함수 셰이더 총 3가지의 셰이더를 지원합니다.] 주로 사용하는건 서피스, 버텍스/프래그먼트이며 버텍스 셰이더는 정점의 정보값을 변화시켜서, 물체를 특별한 위치로 옮기거나, 텍스처를 바꾸거나, 색상을 바꾸는 등의 일을 할 수 있다. 하지만 기존의 정점을 지우거나 새로운 정점을 추가하는 등의 작업은 할 수 없다. 프래그먼트 ..