전체 글 54

[자료구조] 이진트리(Binary Tree)와 이진탐색트리(Binary Search Tree)

트리(Tree) 자료구조의 개념 및 사용용어 트리 자료구조와 비슷한 자료구조는 LinkedList가 있다 . 아래의 예시는 Singly LinkedList(단일 링크드리스트)의 구조인데, 노드의 value와 다음 노드를 가리키는 next(포인터)로 구성되어있다. 해당 노드는 value가 5이고 포인터가 null을 가리키고 있기 때문에 next의 값은 null이 된다. LinkedList의 노드의 저장형식을 코드로 표현하면 아래와 같은 방식으로 저장되며 HashMap의 key-value 쌍과 비슷한 value-next 쌍으로 저장이 된다. 트리 자료구조는 노드의 포인터가 left와 right으로 설계되있다. 이를 코드로 표현하면 value-left-right으로 저장되는 것을 알 수 있다. left와 ri..

[LeetCode] #1290 Convert Binary Number in a Linked List to Integer (repeat : 0)

LinkedList의 노드에는 이진수로만 이루어져있으며, 이를 십진수로 바꾸는 문제이다. Description Given head which is a reference node to a singly-linked list. The value of each node in the linked list is either 0 or 1. The linked list holds the binary representation of a number. Return the decimal value of the number in the linked list. The most significant bit is at the head of the linked list. Example 1: Input: head = [1,0,1] O..

[LeetCode] #83 Remove Duplicates from Sorted List (repeat : 0)

중복값이 나오면 포인터를 리스트에서 빼는 문제이다. 요소를 Set 자료구조에 넣은 후,Set자료구조에 포함되면 이전포인터가 현재포인터를 건너띄고 다음포인터를 향하도록 하였다. 자바인데 컴파일러를 C로 했더니 계속 오류가 낫다 -- # Description Given the head of a sorted linked list, delete all duplicates such that each element appears only once. Return the linked list sorted as well. Example 1: Input: head = [1,1,2] Output: [1,2] Example 2: Input: head = [1,1,2,3,3] Output: [1,2,3] #Solution cl..

[CCNA] Cisco 네트워크 트러블슈팅 방법론

시스코 트러블슈팅 방법론 네트워크 문제가 발생할 때 시스코의 트러블슈팅 방법이다. Define Problem : 문제가 무엇인지 파악한다. Gather Information : 문제에 대한 정보를 수집한다. - 사원들에게 질문하며 최근 변경사항이 있는지, 특정 호스트만 문제가 발생하는지 등을 알아낸다. Analyze Information : 획득한 정보를 분석한다. - ping,traceroute과 같은 명령어를 사용하여 정보를 분석한다. Eliminate Potential Causes : 잠재적인 원인을 제거한다. Propose Hypothesis & Test Hypothesis : 가설을 제시하고 테스트한다. - 획득한 모든 정보를 고려하여 문제의 원인으로 가장 가능성이 높은 것을 파악하고 테스트해본..

Mutext 뮤텍스 vs Semaphore 세마포어

글에 들어가기에 앞서, 세마포어와 뮤텍스의 가장 기본적인 차이점은 세마포어는 signal mechanism 신호 메커니즘이라는 것이다. 프로세스는 자원을 획득하기 위해 wait()과 signal()을 이용하여 작업을 수행한다. 반면에 뮤텍스는 lock mechanism 잠금 메커니즘이다. 프로세스가 리소스를 획득하려면 해당 뮤텍스 객체의 락을 얻어야한다. 세마포어란? 세마포어는 한국어로 '신호기'라는 의미로서, 마치 기찻길의 신호기처럼 두 개의 철도가 충돌하는 것을 막기위해 두 열차의 진입순서를 막아주는 역할을 한다. Semaphore(int permits, boolean fair) 신호기의 역할은 Semaphore 생성자의 파라미터로 들어가는 int permits이 한다. permits은 세마포어가 가..

[CCNA] IP주소 클래스(A,B,C,D,E class)란?

IP 주소 클래스란? IPv4 주소는 32자리 이진수로 구성되어 있고, 이 주소는 십진수로 표현되는데 옥텟 당 '.'을 찍어 구분한다. IP주소는 호스트영역과 네트워크 영역으로 구분되어있다. 현대에는 서브넷 마스크를 이용하여 네트워크 영역과 호스트 영역을 구분하지만, 서브넷 마스크를 쓰기 전에 사용했던 개념은 클래스 주소이다. IP주소에는 클래스라는 개념이 있고 이 클래스로 인해 네트워크 영역과 호스트 영역이 구분된다. IP주소 클래스는 IP 주소를 범주에 따라 나누어 관리하는 방식 중에 하나이다. 첫 번쨰 옥텟의 값에 따라 A,B,C,D,E 클래스로 분류되며, 하나의 네트워크에서 몇개의 호스트 IP까지 가질 수 있는가로 클래스가 나누어진다. Class A - 네트워크.호스트.호스트.호스트 Class B..

[LeetCode] #86 partition List (repeat : 0 )

두시간이나 걸린 문제 .. x보다 작으면 앞에다가 옮기고, x보다 크면 뒤에다가 옮기는 문제다. 노드의 순서는 그대로 유지한 상태여야한다. dummy 노드 두개를 만들어서 x보다 작으면 dummy1에다 넣고 , x보다 크면 dummy2에다 넣은 후 둘이 합치면 된다. #Description Given the head of a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x. You should preserve the original relative order of the nodes in each of the two partitions. Examp..

[CCNA] DNS와 ARP 프로토콜로 알아보는 패킷의 흐름

도메인 네임 시스템 (Domain Name System , DNS) OSI 7계층의 흐름 L7 Application Layer : 발신자(sender)가 패킷을 구성하면 Application Layer에 해당 패킷 정보를 입력한다. L6 Presentation Layer & L5 Session Layer : 그 후 Presentation Layer & Session Layer에서 캡슐화된다. L4 Transport : 패킷은 4계층의 헤더로 전송되며 캡슐화가 진행되는데, 여기에서는 TCP인지 UDP인지의 여부와 포트 번호가 포함된다. L3 Network : 3계층에서 발신자(sender)는 출발지 및 목적지의 IP주소를 입력해야한다. 몇몇 어플리케이션에서는 실제 IP 주소를 바로 입력하지만, 대부분은 w..