분류 전체보기(101)
-
단순 탐색 & 이진 탐색
단순 탐색이란? 말 그대로 단순한 탐색이다. 내가 1 ~ 100 의 자연수 중에서 50 이란 숫자를 찾게 된다고 가정하자. 그 때 우리는 단순 탐색을 하면 1,2,3,4,5,6,7,8,9... 49 , 50! 이렇게 찾게 되는 것을 단순 탐색이라 한다. 위의 예시를 Java 코드로 표현 해보자. for(int i=1; i ( 첫 탐색 범위 : 1 ~ 100 ) 탐색 범위에서 mid 값이 data보다 큰 지 작은 지 본다. -> ( 탐색 범위 mid : 50 / data : 27 / result : 크다 ) result : 크다 ) 탐색 범위 1 (low) ~49( mid - 1 = high ) 로 정한다. result : 작다 ) 탐색 범위 51(mid +1 = low) ~ high ( 100 ) 로 정..
2020.06.11 -
[Basic] 객체 지향 특성
객체 지향 프로그래밍(OOP : Object Oriented Programming)의 특성 1. 추상화 ( Abstaction ) 어떤 것을 필요로 하는 속성이나 행동을 추출하는 작업 사물들의 공통적인 특징, 즉 추상적인 특징을 파악해 인식의 대상으로 삼는 행위를 말한다. 구체적인 사물들의 공통적인 특징을 파악해서 이를 하나의 개념(클래스)로 다룬다. -> 각 객체의 구체적인 개념에 의존하지 않고 추상적인 개념에 의존해야만 설계를 유연하게 할 수 있다. 2. 캡슐화 ( Encapsulation ) 캡슐화는 정보 은닉을 통해 낮은 결합도와 높은 응집도를 갖도록 한다. 정보 은닉 필요가 없는 정보는 외부에서 접근하지 못하도록 한다. (prviate) private VS public 사용법 private 변하..
2020.06.10 -
[그래프 탐색] 최단거리 알고리즘 종류 // 수정 예정
일단 여기서 말하는 "최단거리"란 노드의 수가 아니라 가중치가 1이 아닌 그래프에서 말하는 것이다. 1. 다익스트라 알고리즘 (Dijkstra's Algorithm) - 가장 유명한 알고리즘으로, 단일 정점의 최단경로를 구할 수 있다. 2. 벨만 포드 알고리즘(Bellman-Ford Algorithm) - 음의 가중치를 가진 경로에서도 최단거리를 구할 수 있다. 경로 추적이 가능하다. 3. 플로이드 와샬 알고리즘(Floyd-Warshall Algorithm) - 단일정점이 아닌 모든 정점 사이의 최단거리를 구할 수 있다. 4. SPFA(Shortest Path Faster Algorithm) - STL없이 간단하게 구현 가능하며, 평균적으로 빠른 속도를 가진다. 출처 : https://semaph.tis..
2020.06.10 -
자료구조엔 뭐가 있을까?
출처 - 초보몽키의 개발공부로그
2020.06.10 -
DFS - Depth First Search
깊이 우선 탐색(DFS) 깊이 우선 탐색이란? 위와 같이 자식 노드에서 자식노드로 깊게 탐색하는 것을 DFS라 한다! DFS는 어디에 쓰일까? - 여러가지 경로 탐색 - Top-Down DP(재귀 개념), 완전탐색 등에 사용 DFS는 어떻게 쓰일까? - 재귀를 이용하여 쓰는 방법 - 스택을 이용하여 쓰는 방법
2020.06.09