programming(10)
-
부동산 용어 정리 - 용도 지역
토지를 어떻게 사용할 것인가에 대한 대분류로 도시 계획으로 결정된다. 도시, 농림, 관리, 자연환경보전지역으로 구분이 되는데 예를들어 도시지역에서도 주거, 상업, 공업, 녹지지역이 구분이 되고, 그 중에서 주거구역에서도 1, 2, 3종 주거구역으로 구분하여 인구 밀도를 용적률, 건폐율 등으로 조절한다. 예를들어 강남역 근처의 경우에는 용적률이 매우 높아서 고층빌딩이 들어선 것을 볼수 있고, 집근처 상업구역은 낮은 5층짜리 상업건물이 들어서있는걸 알수있는데 이게 법적으로 용도 지역에 따라서 건폐, 용적률이 다르기 때문이다. 따라서 같은 구역에 있는 건물들은 생긴게 다 비슷비슷하다. 아니면 심시티 게임을 해봤다면 이해가 더욱 빠를거 같다. 내가 궁금한건 서울시내에 고시원이 있는데 뻔히 주거지역 같이 보이는곳..
2023.04.02 -
this 포인터
C와 C++의 가장 큰 문법적 차이점은 class 문법의 유무이다. C에서 C++로 발전 하면서 class 개념이 생겨난 배경과 발전과정을 설명하고자 한다. 프로그램을 구현하기 위해서는 자료와 그 자료를 관리, 수정, 동작 시키는 함수가 존재하고, 이 두 가지는 의존성이 생긴다. 예를 들자면 아래의 CODE (1)과 같이 STUDENT 구조체의 내용이 변경되면 이를 출력해주는 printStudent()도 수정을 해야 한다. 이 경우에 기능적인 결함은 없지만 문법적인 연관성이 없어 처음 이 코드를 보는 개발자는 printStudent()에 대한 존재 조차 모를수도 있고 이해도가 떨어질수 밖에 없다. //CODE (1) typedef struct student{ int age; char name[32]; }..
2017.08.06 -
Krusdal's algorithm(크루스칼)
크루스칼 알고리즘은 비방향성 가중치가 있는 그래프에서 최소비용 신장트리를 구하기 위한 알고리즘이다. 위 그림과 같은 그래프가 있다고 가정 할 때, 각 이음선의 가중치를 오름차순으로 정렬하면 다음과 같다. (v1, v2) 1(v3, v5) 2(v1, v3) 3(v2, v3) 3(v3, v4) 4(v4, v5) 5(v2, v4) 6 이젠 이음선을 차례로 선택하기만 하면 된다. 단, 조건이 하나 있는대 선택한 이음선에 연결된 각 정점이 적어도 하나는 선택되지 않은 파란색 정점이어야 한다. 이 조건을 만족시키며 선택하면 다음 그림과 같이 전개도를 확인가능하다. (v1, v2) 선택 (v3, v5) 선택 (v1, v3) 선택 (v2, v4) 선택 크루스칼 알고리즘도 항상 최소비용 신장트리를 보장한다.
2015.07.16 -
Prim's algorithm(프림 알고리즘)
이 알고리즘은 가중치가 있는 비방향 그래프에서 최단경로를 구하기 위한 알고리즘이다. 알고리즘을 간단하게 설명하자면 1. A집합(선택된 정점의 집합) 중 이음선의 가중치가 가장 낮은 이음선을 선택한다. 2. 선택한 이음선에 연결된 정점을 A집합에 추가한다. 3. [1~2 과정]을 모든 정점이 A집합에 추가 될 때 까지 반복한다. 집합 A = { }, B ={v1, v2, v3, v4, v5}A는 선택 된 정점,B는 선택되지 않은 정점의 집합이다. 집합 A = {v1}, B ={v2, v3, v4, v5}v1을 기본적으로 우선 선택한다. 집합 A = {v1, v2}, B ={v3, v4, v5}v1에 연결된 이음선 중에서 가중치가 1인 이음선을 선택한다.그리고 v2를 집합 A에 추가한다. 집합 A = {v1..
2015.07.16 -
Dijkstra(다익스트라) 2015.07.16
-
Union Find
상호배타적 집합을 표현 할 때 쓰는 자료구조이다. 최적화 하지 않은 Union-Find 복잡도는 O(n) union-by-rank, path compression을 통해 최적화를 한 Union-Find는 O(a(N))의 복잡도를 가진다. 상수시간에 동작한다고 봐도 됨. 자세한 내용은 -> http://blog.secmem.org/521
2015.07.16