본문 바로가기

분류 전체보기31

[자료구조] 힙(heap) 1. 힙(heqp)의 개념 및 규칙 2. heapq 함수 활용하기 3. 힙(heap) 정렬 4. 최대 힙(heap) 1. 힙(heqp)의 개념 및 규칙 앞에서 큐는 데이터가 들어온 순서대로 나가는 선입선출(First In First Out)의 자료구조라고 공부했습니다. 그런데 들어가는 데이터에 우선순위를 매겨서 들어간 순서와 관계없이 나갈 때 우선순위가 높은 데이터가 먼저 나가는 자료를 "우선순위 큐" 라고 합니다. 힙(heap)은 이러한 우선순위 큐를 구현한 자료구조 입니다. 힙은 다음과 같은 규칙을 지닌 이진트리입니다. 1. 노드를 왼쪽에서 오른쪽으로 하나씩 빠짐없이 채워나간다. 2. 최소 힙은 부모 노드가 자식 노드의 값보다 작거나 같아야한다. (최대힙은 부모노드가 자식 노드의 값보다 크거나 같다... 2024. 1. 22.
[자료구조] 스택(Stack)과 큐(Queue) 1. 스택(Stack) 2. 큐(Queue) 3. 덱(Deque) 스택(Stack)과 큐(Queue)는 컴퓨터의 가장 기본적인 자료구조 중 하나입니다. 데이터를 임시 저장하기 위해 사용되는 자료구조이며, 데이터를 입력하고 출력하는 방향이 정해져 있다는 점이 서로 비슷합니다. 스택(Stack) 스택은 LIFO(Last In, Fisrt Out) 형태의 자료구조로 가장 마지막에 입력된 데이터가 가장 먼저 제거되는 구조 입니다. 흔히 박스는 아래에서부터 위로 차곡차곡 쌓고 박스를 치울 때는 위에 있는 박스부터 내리는 것과 같습니다. 파이썬으로 스택을 이용할때는 리스트 자료형을 사용하여 구현합니다. append() 메소드로 리스트의 가장 뒤의 데이터를 push하고, pop() 메소드로 리스트의 가장 뒤의 데이터.. 2024. 1. 18.
[Algorithm] 병합정렬 백준 2751번 문제를 풀다가 시간초과가 나와서, 알고보니 여러 정렬 방법 중 시간 복잡도가 O(nlogn)인 방법을 사용해야 풀 수 있다는 것을 뒤늦게 알게 되었습니다. 그래서 그 중 하나인 병합 정렬에 대해 설명하려 합니다. 먼저 2751번의 문제는 다음과 같습니다. 문제 자체는 상당히 간단합니다. 문제 하단에 제시된 힌트도 있었습니다. 파이썬을 사용하시는 분들은 이 문제를 라이브러리를 사용해서 아주 간단하게 풀 수 있습니다. N = int(input()) arr=[] for i in range(N): x=int(input()) arr.append(x) arr.sort() for i in arr: print(i) 이런식으로 손 쉽게 문제를 해결할 수 있습니다. 하지만 저는 내장된 정렬 함수가 아니라 .. 2024. 1. 16.
[Docker] 컨테이너 라이프사이클 1. Docker Container Life Cycle 2. 컨테이너 실행방법 3. 컨테이너 관련 명령어 Docker Container Life Cycle 컨테이너 실행방법 1. run 명령어로 컨테이너 생성 및 시작 docker run [image] 2. create 명령어로 컨테이너를 먼저 만든 후 start 명령어로 실행 docker create [image] #컨테이너 생성 docker start [container] #컨테이너 시작 컨테이너 관련 명령어 실행중인 컨테이너 상태 확인 ps 전체 컨테이너 상태 확인 ps -a 컨테이너 상세 정보 확인 inspect [container] 컨테이너 일시 중지 pause [container] 컨테이너 재개 unpause [container] 컨테이너 종료.. 2024. 1. 14.