본문 바로가기
반응형

전체 글500

프로그래머스 C# - 삼총사 +) DFS사용해서 풀기 문제를 보고 DFS로 풀었는데 제출 후 다른 사람들 코드에서는 다들 반복문을 사용해서 풀어서 답을 공유하고자 게시글을 작성하게 되었습니다 :) 알고리즘 설명DFS의 depth값이 3이 되는 경우 세가지 조합이 생긴것이므로 return해주도록 하였고 return 전에 sum의 값이 0인 경우 answer값을 증가되도록 하였다.예시[-2, 3, 0, 2, -5]코드 전문using System;using System.Linq;public class Solution { static int answer = 0; public void dfs(int idx, int depth, int sum, int[] number){ if(depth == 3) { if(su.. 2024. 6. 14.
C# - 이진 탐색 트리(Binary Search Tree) 이진 탐색 트리(Binary Search Tree)모든 노드의 왼쪽 서브트리는 해당 노드의 값보다 작은 값들만 가지고 모든 노드의 오른쪽 서브트리는 해당 노드의 값보다 큰 값들만 가진다. 최소값은 트리의 가장 왼쪽, 최대값은 가장 오른쪽에 존재한다.중위 순회(inorder traversal)노드의 값을 오름차순으로 방문한다.방문 순서재귀적으로 왼쪽 서브 트리 순회, 현재 노드를 방문(e.g. 값 출), 재귀적으로 오른쪽 서브트리 순회3 - 5 - 10 - 15 - 17 - 20 - 30 - 40 - 50전위 순회(preorder traversal)루트 노드를 먼저 방문방문 순서현재 노드 방문(e.g. 값 출력), 재귀적으로 왼쪽 서브트리 순회, 재귀적으로 오른쪽 서브 트리 순회20 - 5 - 3 - 15.. 2024. 6. 11.
Unity - 유니티 수학(+) Model Matrix, View Matrix, Projection Matrix) 파이프라인 공부를 하던 중 Vertex Shading부분에서 많은 행렬들이 나오는데 더 자세한 이해를 필요로 하는 것 같아 게시글을 작성하게 되었습니다 :) 현실 세계의 공간 vs 수학의 공간우리가 사는 현실 세계와 게임이 모방한 가상 세계는 모두 일정한 규칙과 질서에 따라 움직인다. 이러한 규칙을 설명하기 위해 수학적 개념이 사용되며, 그 중 중요한 것이 바로 벡터와 벡터 공간이다. 벡터 공간이란?벡터들의 집합으로, 벡터들이 특정 규칙에 따라 더해지거나 스칼라에 의해 곱해질 수 있는 공간을 말한다. 벡터 공간의 구성 요소가 벡터들이다. 벡터 공간을 이해하는 것은 벡터를 제대로 이해하는데 필수적이며 이는 나아가 행렬을 이해하는데도 중요하다. 벡터 공간에서의 벡터 조합벡터 공간 내에서 벡터들을 조합하는 방.. 2024. 6. 1.
Unity - SRP(Scriptable Render Pipelines) + Pipelines(Batching,DrawCall,Post Processing, Upscale Sampling) SRP(Scriptable Render Pipelines)2018년부터 유니티에서 제공하기 시작한 Scriptable Render Pipeline(SRP)은 C# 스크립트를 통해 유니티의 렌더링을 구성하고 제어할 수 있는 기능이다.왜 빌트인 렌더링 파이프라인말고 SRP가 필요할까?Rendering Pipeline을 직접 구성한다는 것은 그만큼 많은 선택권을 가진다는 의미이다. 이는 개발자들이 직접 렌더링 파이프라인을 커스터마이징 할 수 있어, 게임의 렌더링 방식과 리소스 사용을 더욱 효과적으로 제어할 수 있다. 문제 발생!이게 무조건 좋은 점만 있는 것이 아니다. 많은 선택권이 주어짐에 따라 많은 인력, 시간, 돈이 필요할 수 있다.해결 방법SRP 템플릿으로서 URP와 HDRP를 제공하여 이를 해결한다... 2024. 5. 30.
정렬 알고리즘 총 정리 +) C# 구현 코드 정렬이란?데이터를 기준에 맞게 순서대로 배열하는 작업이다.정렬 알고리즘이 왜 필요한가요?주요 목적은 탐색 효율성을 높이는 것이다.안정 정렬정렬 후 동일한 키 값의 요소 순서가 유지되는 정렬제자리 정렬추가적인 메모리를 필요로 하지 않는 정렬참조 지역성CPU가 미래에 원하는 데이터를 예측해 캐시 메모리에 담아 놓는데 이때의 예측률을 높이기 위해 사용되는 원리이다. 최근에 참조한 메모리나 그 메모리와 인접한 메모리를 다시 참조할 확률이 높다는 이론을 기반으로 캐시 메모리에 저장해둔다.삽입 정렬데이터 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여 자신의 위치를 삽입하는 알고리즘이다.방식1) 매 순서마다 해당 요소를 앞의 정렬된 배열에서 삽입할 수 있는 위치를 찾아 해당 위치에 넣는다... 2024. 5. 20.
OOP 관련 총 정리(특징, SOLID) OOP(Object Oriented Programming)란?프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체로 만들고 그 객체간의 상호 작용을 통해 로직을 구성하는 방법을 의미한다.장점 : 코드의 재사용이 용이하므로 유지보수가 쉽다.단점 : 설계시 많은 시간과 노력이 필요하다.01 캡슐화객체의 데이터와 메서드를 하나의 단위로 묶고외부로부터 데이터의 직접 접근을 제한하는 원칙이다. 이를 통해 데이터의 무결성과 객체의 내부 상태를 보호한다. 정보 은닉 기법 중 하나가 캡슐화이다. 추상화도 구현 은닉, 객체의 구체적인 타입 은닉도 업캐스팅이다.ex) protected, private, public02 상속하나의 클래스가 다른 클래스의 특성과 메서드를 물려 받는 기능이다. 이를 통해 재사용성을.. 2024. 5. 17.
반응형