본문 바로가기
반응형

Computer Science84

[자료구조] 큐queue 정의 및 데크deque와 힙큐heapq 사용법 큐는 시퀀스의 한쪽 끝에는 엔티티를 추가하고, 다른 반대쪽 끝에는 제거할 수 있는 엔티티 컬렉션이다. 큐는 FIFO(First-In-First-Out) 선입선출의 구조를 가진다. 간단히 말하면 선착순이다. 맛집에서 줄을 서는 것과 같다. 큐는 스택과 마찬가지로 리스트로 큐의 모든 연산을 구현할 수 있다. 하지만 동적 배열인 리스트는 큐연산에 적합하지 않아서 데크(deque)라는 별도의 자료형을 써야 좋은 성능을 낼 수 있다. 데크 : 더블엔디드큐(Double Ended Queue)의 줄임말로, 양쪽 끝을 모두 추출할 수 있는, 큐를 일반화한 형태의 추상자료형이다. 데크는 pop( )과 popleft( ) 모두 시간복잡도 O(1)을 가지므로 매우 성능이 좋은 자료형이다. import collections .. 2021. 3. 31.
[자료구조] 스택(stack) 정의 및 사용법 스택: 요소의 컬렉션으로 사용되는 추상 자료형이다. 주요 연산으로 push( )와 pop( )이 있다. 스택은 LIFO(Last-In-First-Out) 후입선출 구조를 가진다. 이는 쌓아둔 접시를 떠올리면 쉽게 알 수 있다. 접시는 가장 위에 있는, 즉 가장 나중에 쌓아올린 접시부터 꺼내 사용한다. 프링글스를 가장 나중에 들어간 것부터 먹는 거랑 같은 원리. 리스트가 스택의 모든 연산을 지원한다. 연결리스트를 아용하여 스택을 구현할 수 있지만, 리스트가 스택의 모든 연산을 지원하기 때문에 리스트를 그냥 쓰면 된다. Class Node: def __init__(self, item, next): self.item = item self.next = next Class Stack: def __init__(se.. 2021. 3. 31.
[자료구조] 연결리스트(리스트 변환, 뒤집기) by 파이썬 연결리스트는 데이터 요소의 선형 집합으로, 데이터의 순서가 메모리에 물리적인 순서대로 저장되지는 않는다. 특징 - 동적으로 새로운 노드를 삽입하거나 삭제하기 간편 - 배열과 달리 특정 인덱스에 접근하기 위해서는 전체를 순서대로 읽어야 하므로 상수시간에 접근할 수 없다. 즉 탐색에 O(n)이 소요. 반면 시작 또는 끝 지점에 아이템을 추가/삭제/추출하는 작업은 O(1)에 가능 유용하게 쓰일 코드 스니펫들을 작성해보았다. Class ListNode(): def __init__(self, val=0, next =None): self.val = val self.next = next # linkedList --> List def nodeToList(head): lst = .. 2021. 3. 29.
[DB-01] DBMS와 SQL의 뜻 DBMS(Database management system): 데이터베이스를 관리하고 운영하는 역할을 하는 소프트 웨어. DBMS에 데이터를 구축하고 관리하기 위해서 사용되는 언어를 SQL(structured query language)라고 한다. SQL을 사용하여 DBMS를 통해 주요 정보를 관리 및 추출한다. DBMS와 데이터베이스는 다음의 중요한 특징을 가진다. 1. 데이터의 무결성 데이터에는 오류가 없고 일관성이 보장되어야 함 2. 데이터의 독립성 데이터베이스 크기를 변경하거나 데이터 파일의 저장소를 변경해도 기존의 응용프로그램에는 영향을 끼치지 말아야한다. 3. 보안 접근이 허가된 사람만 데이터에 접근할 수 있어야 한다. 4. 데이터 중복 최소화 동일 데이터가 여러 군데 중복으로 저장되는 것을 방.. 2021. 3. 26.
2의 보수란?? 쉬운 설명으로 궁금증 해결.. (비트 연산) 2의 보수: 컴퓨터가 음수를 저장하기 위해 사용하는 방법 중 하나. 예를 들어 4비트 머신을 생각해보자. 이 머신은 0000부터 1111부터 표현이 가능하다. 총 16개. 양수만을 저장하고싶다면 숫자 0부터 15까지 차례대로 대응시켜 저장할 수 있겠지만, 문제는 음수도 저장이 필요하다는 점! 그래서 16개 중 절반을 음수를 위해 할당한다. 따라서 -8부터 7까지의 숫자를 저장하게 된다. 그리고 맨 앞의 비트는 부호 비트로 사용한다. 맨 앞의 비트가 0이면 양수고 1이면 음수. 십진수 2진수 십진수 2진수 -8 1000 0 0000 -7 1001 1 0001 -6 1010 2 0010 -5 1011 3 0011 -4 1100 4 0100 -3 1101 5 0101 -2 1110 6 0110 -1 1111 .. 2021. 3. 17.
[운영체제OS]9(完). 디스크 관리(구조, 스케줄링, 저전력 관리) ******************************** ##이 글은 제가 공부하고 있는 책을 요약해놓은 것이므로 본문 내용만 봐선 이해가 어려울 수 있습니다. 목차 1. 디스크의 구조 2. 디스크 스케줄링 3. 다중 디스크 환경에서의 스케줄링 4. 디스크의 저전력 관리 ******************************** 디스크: 컴퓨터 시스템의 대표적인 2차 저장장치. 메모리는 휘발성 저장장치이므로 전원이 나가면 내용이 모두 사라지기 때문에 작업의 결과를 영구히 보관하기 위해서는 디스크 같은 2차 저장장치를 이용해야 한다. 1. 디스크의 구조 디스크 외부에서는 디스크를 일정한 크기의 저장공간들로 이루어진 1차원 배열처럼 취급하게 됨. 이 일정크기의 저장공간을 논리블록(logical block).. 2021. 3. 15.
반응형