일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Beakjoon
- 백준 c++ 2870번
- 백준 1103번 c++
- 수학숙제
- 프로그래머스
- Lv2
- 17070번
- 오브젝트 풀링
- 코테
- 2870번
- 백준 1103번
- 2870번 c++
- 2870번 수학숙제
- 플레이어 이동
- 코딩테스트
- Algorithm
- 백준
- 백준 17070번 c++
- 백준 1103번 게임
- 백준 c++ 2468번
- c++
- 유니티
- 백준 2870번
- 백준 17070번
- Lv.3
- Unity
- 2468 c++
- dfs
- C#
- 2870번 수학숙제 c++
- Today
- Total
목록Programming (19)
주녘공부일지
렌더링 파이프라인(Rendering Pipeline)가상 3D 세계의 존재하는 물체를 카메라가 비추는 것을 기준으로 2D 이미지로 추출하는 과정 1단계 : 로컬 스페이스(Local space) // 모델링 스페이스 다른 모델들과 전혀 상관이 없는 각각의 모델을 구성하고 있는 고유 공간- 삼각형의 리스트를 정의하는데 이용하는 좌표시스템이다.- 3D 상의 모든 물체는(카메라 포함) 고유의 로컬 좌표계를 가지고 있다. 2단계 : 월드 스페이스(World space) 각 로컬 스페이스의 모델들을 하나의 장면(공간)으로 구성하는 단계- 개별적인 좌표를 가지고 있는 물체들이 하나의 공간안에 모여있을 때 이 공간을 월드라고 하며, 각각의 오브젝트들의 이동, 회전 변환 등을 포함하는 월드변환을 통해서 옮겨지게 된다. ..
A* 알고리즘이란?다익스트라 알고리즘에서 동적 계획법(DP)을 적용시켜 확장한 최단 경로 탐색 알고리즘- 탐색이 가능한 모든 노드 중 현재 최적이라고 판단되는 노드를 탐색1. A* 알고리즘의 개념- 닫힌 목록 : 탐색이 끝난 노드들의 집합 ( 다시 탐색 X )- 열린 목록 : 탐색이 가능한 노드들의 집합 ( 닫힌 목록과 인접한 노드 )g(x) : 시작점을 기준으로 한 비용h(x) : 도착점까지의 예상 비용 // 휴리스틱 함수f(x) = g(x) + h(x) - 휴리스틱 함수 h(x)에 따라 성능이 변함 -> h(x) 이 g(x) or 0 인 경우 다익스트라 알고리즘과 동일 + 휴리스틱 함수란?현재 노드에서 목표 노드까지의 예상 비용을 구하는 함수 -> ex. 맨해튼 거리 함수, 유클리디안 거리 함수2..
객체지향 프로그래밍 (OOP : Object Oriented Programming)필요한 데이터를 추상화해 상태와 행위를 가진 객체로 만들고 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법1. 특징1) 상속 (Inheritance)- 부모 클래스에게 정의된 클래스의 모든 필드와 메서드를 상속받은 자식 클래스가 물려받음 2) 다형성 (Inheritance)- 하나의 메시지에 대해 각각의 객체가 가진 고유한 방법으로 응답할 수 있음 ex) 오버라이딩(overriding), 오버로딩(overloading) 3) 캡슐화 (Encapsulation)- 외부에서의 접근을 제한하기 위해 세부 내용을 은닉함 ex) 데이터를 단일 단위로 숨겨 외부로부터 데이터를 보호 4) 추상화 (Abstraction)- ..
DataClass PriorityQueue // 데이터 추가해서 사용 public class DataClass { public int cost; public DataClass(int cost) { this.cost = cost; } } // DataClass의 cost를 기준으로 가장 작은 값을 우선으로 두는 우선순위 큐 public class PriorityQueue { private List heap = new List(); public int Count => heap.Count; public void Enqueue(DataClass data) ..
0. 이벤트 (Event) 방송자 : 대리자가 있는 필드 형식으로, 대리자를 호출해 정보를 방송한다는 의미 구독자 : 대리자가 호출할 대상 메서드를 등록하는 형식으로, '+=', '-=' 연산자를 호출해 해당 방송의 청취를 시작 or 중단함 // 대리자 정의 public delegate void PriceChangedHandler(decimal oldPrice, decimal newPrice); public class Stock { string symbol; decimal price; public Stock(string symbol) { this.symbol = symbol; } // 이벤트 대리자 public event PriceChangedHandler PriceChanged; public decim..
대리자(delegate)와 인터페이스(interface)를 비교하기 위해 같은 기능을 하는 간단한 예제를 들고 후술1) 대리자 (Delegate)https://godgjwnsgur7.tistory.com/122 [C#] 대리자 (Delegate - Action, Func)대리자 (Delegate) 어떤 메서드를 호출하는 방법을 담은 객체 - C의 함수 포인터 같은 지연 호출 수단 등과 같이 프로그래밍 언어에서 말하는 Callback과 유사 - 제네릭 대리자 형식으로 선언할 수도godgjwnsgur7.tistory.com ex) 제네릭 형식에 제네릭 형식 매개변수를 둔 예시public delegate T Transformer (T arg);public class Util{ public static v..
대리자 (Delegate) 어떤 메서드를 호출하는 방법을 담은 객체 - C의 함수 포인터 같은 지연 호출 수단 등과 같이 프로그래밍 언어에서 말하는 Callback과 유사 - 제네릭 대리자 형식으로 선언할 수도 있으며, 제네릭 형식 매개변수를 둘 수도 있음 https://godgjwnsgur7.tistory.com/115 [C#] 제네릭 (Generic) 제네릭 (Generic) - 서로 다른 형식들에 대해 재사용할 수 있는 코드를 작성하기 위해 사용하는 메커니즘 - 형식 안정성을 높이고 캐스팅과 박싱을 줄이기 위한 수단이 됨 (일반화, 특수화) + 제네릭 godgjwnsgur7.tistory.com ex) 대리자 인스턴스, 호출, 대리자를 이용한 플러그인 메서드 // 제네릭 대리자 형식 public d..
제네릭 (Generic) - 서로 다른 형식들에 대해 재사용할 수 있는 코드를 작성하기 위해 사용하는 메커니즘 - 형식 안정성을 높이고 캐스팅과 박싱을 줄이기 위한 수단이 됨 (일반화, 특수화) + 제네릭 컬렉션의 자료구조를 부분적으로 직접 구현해 예제로 삼음 https://godgjwnsgur7.tistory.com/46 [C#] 자료구조 ( 제네릭 컬렉션 ) 자료구조(Data Structure)란? 데이터를 효율적으로 접근하고 조작할 수 있게 데이터 구조를 만들어 관리하는 것 - Collections은 C#에서 지원하는 자료구조 클래스 using System.Collections.Generic; 제네릭 컬렉 godgjwnsgur7.tistory.com 1) 제네릭 형식 형식 매개변수를 선언해 사용하는..
최소 비용 신장 트리 MST (Minimum Spanning Tree) 그래프에서 모든 정점을 최소 비용으로 연결하는 것 - n개의 정점을 잇는 간선의 수는 n-1개 ( 사이클을 가져서는 안됨 ) -> 사이클 ex) A -> B / B -> C / C -> A - 간선의 가중치의 합이 최소여야 함 1. 크루스칼 알고리즘 (Kruskal Algorithm) 가장 비용이 적은 간선부터 선택해 나가는 알고리즘 (간선 선택 기반 알고리즘) - 간선을 기준으로 선택하기 때문에 간선이 적은 그래프(희소 그래프)에 유리 - 가중치를 기준으로 정렬된 간선들을 Union-Find 알고리즘을 사용해 연결하는 방식 동작 방식 1. 간선들을 가중치를 기준으로 오름차순 정렬 2. 가중치가 적은 간선부터 차례로 연결되어 있는지 ..
1. 동적 계획법(DP : Dynamic Programming) 복잡한 하나의 큰 문제를 여러 개의 작은 문제로 나누어 해결하는 문제해결 방법 중 하나 - 작은 문제의 연산 결과를 저장해놓았다가 다시 큰 문제를 해결할 때 저장해둔 연산 결과를 다시 사용하는 문제해결 패러다임 즉, 메모리라는 공간 비용을 사용해 계산에 소요되는 시간 비용을 줄이는 방식 적용 조건 - 최적 부분 구조 : 작은 문제들의 연산 결과로 큰 문제의 답을 알 수 있는 구조 - 중복 부분 문제 : 작은 문제들의 연산은 중복된 연산으로 같은 값이 되는 문제 ex) 피보나치 수열, 등 + Divide and Conquer(분할 정복)과의 차이점 : 중복되는 연산의 유무 ( 작은 문제의 답이 항상 같은가? ) 2. 동적 계획법의 방식 Top..