프로그래밍(23)
-
[Network 용어] 브리지(Bridge), 스위치(Switch)란?
Overview 허브를 설명한 지난 포스팅에서 콜리전 도메인(Collision Domain)에 관한 언급을 잠깐 했었습니다. 허브와 브릿지, 스위치는 모두 외관상으로는 비슷한 모양을 띠지만, 허브는 콜리전 도메인을 나누어주지 못한다는 특징을 가지고 있습니다. 따라서 CSMA/CD방식의 Collision Detect Method를 사용하는 이더넷 케이블의 경우 아무리 전송속도가 빠르다고 해도, 허브로 연결된 네트워크에서는 한 번에 한 컴퓨터만 데이터를 전송할 수 있었습니다. 이를 보완하는 것이 오늘 설명할 스위치(Switch)와 브릿지(Bridge) 입니다. 이 포스팅 전반에 걸쳐서 스위치와 브릿지는 거의 비슷한 기능을 수행합니다. 따라서 스위치와 브릿지가 갖는 공통적인 특징들에 대해서 주로 설명하도록 하..
2020.06.22 -
[Network 용어] 허브(HUB)란?
Overview 네트워크를 공부하거나, 인터넷 연결등을 하다 보면 허브(HUB)라는 용어를 자주 듣게 됩니다. 그리고 비슷한 용어로 스위치(Switch), 브리지(Bridge), 라우터(Router)등의 용어들도 많이 듣게 되는데, 처음 네트워크를 접하는 입장에서 이들 용어를 정확히 이해하고 구분해 내는 것은 생각보다 쉽지 않은 것 같습니다. 4가지의 용어는 서로 다른 장비를 가리키는 말이지만, 눈으로 보기에 이들 장비는 그냥 구멍이 많이 뚫린 상자처럼 보이기 때문입니다. 이번 포스팅에서는 그중 "허브"라는 장비에 대해서 설명하려고 합니다. Definition 허브란 쉽게 말해서 컴퓨터와 컴퓨터 사이, 즉 네트워크 장비와 장비를 연결해 주는 기능을 수행하는 장비입니다. 우리가 인터넷에 접속해서 블로그의 ..
2020.06.20 -
[백준 3653 | 펜윅 트리] 영화 수집
풀이 펜윅 트리로 검색해서 들어갔던 문제이기 때문에 어떻게든 펜윅 트리를 사용해서 풀어야 한다는 강박관념이 있었던 문제였습니다. 펜윅트리는 저번 포스팅에서도 간략하게 설명했지만 구간합을 빠르게 구하기 위해 사용되는 알고리즘입니다. 따라서 문제의 핵심은 특정 영화의 앞에 놓여있는 영화의 개수를 어떻게 구간합으로 표현할 것인가?입니다. 1. 영화는 한번의 시행때마다 그 위치가 움직이므로 위치의 변동을 표현할 수 있어야 한다. 2. 펜윅 트리는 구간의 합을 빠르게 구할 수 있는 자료구조이므로, 구간의 합을 영화 앞에 쌓여 있는 영화의 개수로 치환할 수 있어야 한다. 3. 영화의 위치가 변했을 때, 트리를 업데이트하기가 용이해야 한다. 위 생각을 적용해볼 때, n+m의 크기를 갖는 펜윅 트리를 구성하고, 특정 ..
2020.06.17 -
Dimensionality Reduction - Data Compression & PCA
* 첨부된 자료의 모든 저작권은 COURSERA에 있음을 미리 밝힙니다. Dimensionality Reduction - Data Compression & PCA 이번에는 주어진 데이터셋의 차원을 낮추는 Data Compression과 그 일종인 PCA에 대해서 알아보고자 한다. 고차원의 데이터에서는 관측단계도 기하급수적으로 증가하고메모리도 굉장히 많이 차지하기 때문에 많은 문제점이 발생하게 된다.즉, 차원이 증가하면 이를 표현하기 위한 데이터의 양이 기하급수적으로 증가한다는 것이다. 따라서 기계학습을 시키기 위해서는 이 데이터의 차원을 축소하여 다룰 필요가 생기는데, 이를 차원 축소(DImensionality Reduction)라 한다. 차원 축소의 의미는 바로 "데이터의 의미를 잘 표현하는 특징을 추..
2019.02.16 -
UnSupervised Learning - K means Algorithm
* 첨부된 자료의 모든 저작권은 COURSERA에 있음을 미리 밝힙니다 Unsupervised Learning- K means Algorithm 지금까지 살펴본 기계학습 방법들은, (크게는 Linear Regression과 Logistic Regression을 사용한 분류 방법부터 좀더 구체적으로는 Linear Regression, One vs One, One vs All 까지) 모두 지도학습 (Supervised Learning) 을 통해 데이터를 훈련시켰다. Supervised Learning 이란 데이터셋을 제공할 때 이 데이터 셋이 출력해야 하는 결과값(y)까지 제공하는 것으로주어진 데이터를 훈련시켜 알고리즘이 어떤 결과를 가져와야 하는지를 알려주는 훈련 방법이다. 예를 들면 위 그림과 같다. x..
2019.02.16 -
[BOJ_1182 | DFS backtracking] 부분집합의 합
풀이 DFS 백트래킹을 이용해서 풀 수 있는 문제였다.부분집합의 모든 경우를 헤아린다든지 하는 문제에서는 DFS를 통해재귀함수가 알아서 처리하도록 하는 편이 코딩하는 데 더 간편한 것 같다. 이 문제를 풀 때 주의해야 할 점은탐색을 하다가 S값을 찾았다고 해서 서둘러 탐색을 종료해서는 안된다는 것이다.예를 들어 S 값이 10이라고 할 때 1, 2, 3, 4 를 순서대로 탐색하고 '아 10이니까 이제 종료하고 다른 케이스를 살펴봐야지'하면 안된다는 의미인데, 왜냐하면 Array의 원소 중에 음수인 경우가 있으므로1, 2, 3, 4, -5, 5인 경우도 합이 10이 되는 케이스가 있을 수 있기 때문이다.따라서 S값을 찾았을 때는 counter의 값만 증가시켜주고 탐색을 계속해야 한다. 소스코드 import ..
2019.02.15