250929
·
📖TIL
디자인 패턴 개념반복적으로 나타나는 코드를 보고 디자인이라고 부른다소프트웨어 개발에서 자주 발생하는 문제를 해결하기 위한 재사용 가능한 설계 솔루션이다. class Program{ // 팩토리 패턴 예시 public abstract class Ship { public abstract void Sail(); } public class BattleCruiser : Ship { public override void Sail() { { Console.WriteLine("Battlecruiser operational."); } } } public class..
250929 Revision
·
📖TIL
알고리즘 성능을 수학적으로 나타내는 방법 정확한 실행 시간을 측정하는 것이 아니다 입력 크기를 N 이라고 가정, 성장의 속도 배열 요소가 10개일 때 1초, 100개 일때 10초 , 1000개 일때 100초가 걸린다 선형적으로 증가한다, O(N) 배열 요소가 10개일 때 1초, 100개일 때 100호, 1000개일 때 10000초 제곱으로 증가하고 있다 O(N^2) BigO 는 성능의 '최고차항'만 남겨서 단순화 한 것 n-1 이라던지 /2 같은 상수 같은건 다 무시 for 를 3번 굴리는 알고리즘은 n^3 O(n): 사람을 한 줄로 세워 차례대로 검사.O(log n): 절반씩 줄여가며 검사.O(2^n): 가능한 모든 경우를 일일이 다 시도. 지수 = "곱하기를 몇 번 반복했는가"로그 = "곱하기 ..
델리게이트 ( Delegate )
·
⭐C Sharp/12. 델리게이트
델리게이트 ( Delegate )프로그래밍을 하다 보면 특정 상황에서 어떤 동작을 나중에 결정해야 하는 경우가 있다.사용자 인터페이스 ( UI ) 에서 버튼이 클릭됐을 때 특정 동작을 수행하도록 만들고 싶을때게임에서 몬스터를 처치했을 때 , 코인 적립 , 경험치 지급 등 여러 가지 동작이 동시에 수행되어야 할 때파일 다운로드 진행 상황을 표시하는 라이브러리에서 다운로드가 진행될 때마다 진행률을 업데이트 할 때이런 문제를 해결하기 위한 C# 기능 중 하나가 바로 델리게이트 ( Delegate )이다.해석하면 "대리인" 이라는 뜻의 델리게이트는 "함수를 변수처럼 다룰 수 있는 기능" 이다.즉 , 함수 자체를 변수에 저장하거나 매개변수로 전달할 수 있게 해주는 기능이다. 게임에서 플레이어가 몬스터를 처치했을 ..
그래프 ( Graph )
·
⭐C Sharp/15-6. 트리와 그래프
그래프 ( Graph )그래프는 정점 ( Vertex , Node ) 과 간선 ( Edge ) 으로 이러우진 자료구조이다.객체 간의 관계를 표현하는데 사용한다.정점은 개체를 나타내고 , 간선은 두 정점 간의 연결 관계를 의미한다. ▼정점 ( Vertex , Node )정의 : 그래프에서 표현하는 대상 ( 객체 , 데이터 , 위치 등 )예시 : 소셜 네트워크 - 사람 한명지도 - 도시 , 역웹 - 웹 페이지표현 방식 : 일반적으로 원 ( circle ) 으로 표시하고, 고유한 번호 ( ID ) 나 이름 ( Label ) 을 붙인다.쉽게 말하면, "점" 자체를 나타낸다. ▼간선 ( Edge )정의 : 두 정점을 연결하는 선 ( 관계나 경로 )종류 :무방향 간선 ( Undirected Edge ) : 양방..
트리 ( Tree )
·
⭐C Sharp/15-6. 트리와 그래프
트리 ( Tree )트리는 계층적 ( Hierarchical ) 구조를 표현하는 자료구조이다.노드 ( Node ) 와 간선 ( Edge ) 으로 이루어지며 부모 - 자식 관계를 가진다.대표적인 예시 : 폴더 구조 , 조직도 , 게임 내 스킬 트리 ▼노드 ( Node )정의 : 트리의 구성 요소 ( 데이터를 담는 단위 )하나의 노드는 데이터와 자식 노드( 들 )에 대한 참조를 가진다. 1. 루트 노드 ( Root Node )최상위에 있는 노드 ( 부모가 없다 )트리 전체의 시작점 2. 내부 노드 ( Internal Node )부모도 있고 자식도 있는 중간 단계 노드 3. 리프 노드 ( Leaf Node )더 이상 자식이 없는 노드 ( 끝 점 ) A(루트) / \ ..
비선형 자료구조 ( Non - Linear )
·
⭐C Sharp/15-6. 트리와 그래프
비선형 자료구조 ( Non - Linear Data Structure )지금까지 데이터가 일렬로 보관되는 선형 자료구조에 대해 배웠다.데이터의 여러 관계도를 나타낼 수 있는 비선형 자료구조에 대해 다뤄보겠다.비선형 자료구조를 사용하는 이유 중 하나는 데이터 간의 관계도 혹은 계층을 표현하기 위함이 크다.비선형 자료구조는 그 종류가 정말 많은데, 사용하는 목적 경우에 따라 아주 다양한 자료구조로 활용할 수 있다.비선형 자료구조에는 대표적으로 두 가지의 기본 형태인 그래프와 트리가 있다.그래프 ( Graph ) 는 다소 불규칙적인 연결 관계를 보여준다.트리 ( Tree ) 는 깔끔하게 정렬되어 있는 모습을 보여준다. 비선형 자료구조란?데이터가 계층적 ( Hierarchical ) 또는 망 ( Network ..
상속 ( OOP )
·
⭐C Sharp/11. 객체 지향
상속 ( Inheritance )상속은 OOP ( 객체지향 프로그래밍 ) 핵심 개념 중 하나이다.즉, 상속은 자료형 / 문법 같은 "언어 요소" 가 아니라, 객체지향 프로그래밍 패러다임의 핵심 네 가지 축 중 하나에 해당된다.객체지향 프로그래밍 ( OOP ) 에서 상속은 코드의 재사용성과 확정성을 높이기 위한 핵심 개념이다.C# 에서는 상속을 통해 기존 클래스의 기능을 물려받고, 필요에 따라 추가하거나 수정할 수 있다. 상속을 하면 기존 클래스 ( 부모 , 또는 기반 클래스 ) 의 변수 , 메서드 등을 새로운 클래스 (자식 , 파생 클래스) 에서 사용 가능하다.클래스의 경우라면 상속은 다중 상속을 지원하지 않는다.예외적으로 인터페이스 ( Interface ) 의 경우는 여러가지를 구현 가능하다. 문법c..
해시테이블 ( Hashtable )
·
⭐C Sharp/15-5. 딕셔너리 해시테이블
해시테이블 ( Hashtable )C# 에서는 Key 와 Value 를 사용해서 자료를 저장하는 타입이 두 가지가 있다.해시테이블과 딕셔너리인데 사용법은 거의 동일하지만 내부적으로 처리하는 기술이 다르다.해시 함수를 이용해 키 ( Key )에 대응되는 값 ( Value )를 빠르게 저장하고 검색할 수 있는 자료구조이다.C# 에서는 System.Collections.Hashtable 클래스로 제공된다. 문법▼선언using System.Collections;Hashtable table = new Hashtable(); ▼추가table.Add("apple", 100); // 100 (int → object) 박싱 발생table["banana"] = 200; // 200 (int →..
추상 클래스 ( Abstract Class )
·
⭐C Sharp/11. 객체 지향
추상 클래스 ( Abstract Class )여러 클래스가 비슷한 구조를 가질 때, 그 공통된 틀과 동작을 정의.구체적인 구현은 각각의 클래스에 맡기고 싶을 때 추상 클래스를 사용한다.추상 클래스는 완전한 구현을 갖지 않고, 파생 클래스가 반드시 재정의해야 하는 멤버 ( 추상 메서드 )를 포함할 수 있는 클래스이다.단독으로 객체를 생성할 수 없으며, 상속 전용 목적으로 사용된다. 문법▼추상 클래스 선언abstract class Animal{ public abstract void MakeSound(); // 추상 메서드 public void Sleep() // 일반 메서드도 가능 { Console.WriteLine("Zzz..."); }} ▼..