Mgcllee

[네트워크] 네이글 알고리즘

전송 계층에서 사용하는 프로토콜은 UDP와 TCP가 존재합니다. 먼저 UDP는 데이터의 송수신이 보장되지 않는 통신이지만 통신속도가 TCP와 비교했을 때 비교적 빠르다는 장점이 있습니다. 실생활에서 볼 수 있는 UDP 통신은 비디오 스트리밍이 있습니다. TCP의 경우 UDP와 정반대의 특징을 가지고 있습니다. 패킷 송수신의 순서를 지키며 통신합니다...

[수학] 점 3개의 관계 파악하기

점 3개의 관계 파악하기 한 평면에서 점 3개가 있을 때, 이 점들의 관계를 확인하기 위해 외적이 사용됩니다. 외적은 2개의 벡터가 동시에 수직인 벡터의 결과를 확인할 수 있는 연산입니다. 오른손 법칙을 이용해 2개의 점으로 이루어진 벡터와 나머지 1개 점이 어떠한 관계인지 파악할 수 있습니다. 예를 들어, 위와 같은 A→B, A→...

[네트워크] 이더넷의 개념과 특징

이더넷이란 여러 통신 장치가 연결된 네트워크 환경 을 이더넷이라고 합니다. 통신 장치의 고유주소인 MAC Address(16진수로 표현된 48비트의 고유주소)를 가지고 OSI 7계층 중 물리 계층 과 데이터 링크 계층 에서 사용되는 통신기술입니다. 물리 계층에서는 데이터의 물리적 신호 변환과 데이터가 이동할 배선을 담당하고 데이터 링크 계층에서는 데...

[알고리즘] 다이나믹 프로그래밍(DP)

부분 문제 나누기 동적 프로그래밍은 한 문제를 여러 문제로 나누어 해결 하는 기법입니다. 처음 동적 프로그래밍(이후 DP)을 접한 분들은 시작부터 막막하실 수 있습니다. “한 문제를 어떻게 여러 문제로 나눈다는 거지?” 라고 당연히 의문이 생기실 겁니다. DP 문제는 문제를 어떻게 나눌지 기준부터 정해줘야 풀이 방법이 보입니다. 대표적인 예시가 ...

[알고리즘] 너비 우선 탐색(BFS)과 깊이 우선 탐색(DFS)

너비 우선 탐색 너비 우선 탐색(Breadth First Search)은 넓게 탐색하는 알고리즘입니다. 너비 우선 탐색(이후 BFS)의 원리는 현재 노드의 자식 노드를 먼저 방문한다. 입니다. 미로를 예시로 설명 해보겠습니다. 저희는 어느 방에 있고 방에는 여러 개의 문이 있습니다. 원하는 방으로 이동하기 위해서 할 수 있는 행동은 현재 방에 있는 ...

[Clean Code] 코드 개선 목적 소개

일관성 없는 코드 문제의 코드를 보면 각 클래스 설계에 일관성이 없는 것을 확인할 수 있습니다. 이 문제점을 해결하고자 이번 포스트를 기획하게 되었습니다. 코드 개선 작업은 다음의 목표를 두고 진행합니다. 리팩토링 기능 개선 리팩토링 작업에서는 객체 지향에 맞게 수정하고 기능 개선 작업에서 기존 기능을 변경하거나 새로운 기능을 추가하는...

코딩테스트 준비 방법

프로그램 개발 순서 코딩 테스트는 개발자의 개발 역량을 파악하기에 좋은 기준입니다. 코딩 테스트를 준비하기 위해서는 핵심적인 부분을 반드시 학습 후 시작할 것을 추천합니다. 준비 방법의 순서는 다음과 같습니다. 자료구조와 알고리즘 복잡도 계산 알고리즘 문제 풀이 작성한 코드 분석 프로그램 제작의 설계 단계에서 프로그래머는 ...

[Computer Science] Computer Science

Computer Science “코더와 개발자를 구분하는 기준 중 하나는 컴퓨터 구조를 알고 있느냐에 있다.” IT의 발전과 수요에 따라 많은 프로그래머들이 탄생하고 있습니다. 그러나 다른 프로그래머 보다 더 빠르게 성장하기 위해서는 기본적인 컴퓨터 구조 지식이 필수입니다. 따라서 CS 카테고리에서는 컴퓨터 구조의 일부분을 설명하는 포스팅을 올리...

[백준][4949] 균형잡힌 세상

요구사항 분석 여러 문자들이 섞여있는 문자열이 입력될 때, 이 문자열 속 소괄호와(“()”) 대괄호(“[]”)의 짝이 옳바른지 확인하는 문제입니다. 알고리즘 선택 괄호를 확인할 때, 입력된 순서의 역순으로 반대편 괄호가 있어야 짝이 성립되는 것이므로 FILO 구조의 컨테이너인 STACK 을 사용하여 구현하였습니다. 풀이 분석 #includ...