본문 바로가기
반응형

컴퓨터공학12

3. 큐 (Queue) 큐란? 선입선출(First In First Out / FIFO) 특성을 가지는 선형 자료 구조이다. 앞서 살펴본 스택과는 대비되는 특성으로, 스택과는 반대로 먼저 들어온 데이터가 먼저 나오는 순서를 유지하는 구조를 가지고 있다.큐의 연산 큐에는 선형큐, 환형큐, 우선순위 큐 등의 바리에이션이 있지만 여기서는 선형큐를 기준으로 설명한다.기능명칭시간복잡도삽입enqueueO(1)삭제dequeueO(1)큐의 장점 1. 작업의 순서를 유지하여야 하는 알고리즘에 적합하다. 2. 효율적인 삽입과 삭제로 연산 시간이 매우 적다. 3. 운영체제의 스케줄링, 네트워크 패킷 처리, 예약, 대기열 등 많은 분야에서 활용도가 높다. 큐의 단점 1. 순서를 유지해야하는 특성상 스택과 배열에 비해서는 약간 복잡한 구조. 2. 스택.. 2024. 7. 2.
[Python] 백준 17374: 비트베리 solved.ac 기준 Silver 1 알고리즘을 푸는 데 수학적 지식이 무조건 있어야 하는 이유이다. 가끔씩 이렇게 수식으로 끝내야만 하는 문제가 나오므로 점화식을 살펴보는 능력을 준비하고 있어야 한다.문제비트베리는 국내 최다 사용자를 확보하고 있는 간편암호화폐 지갑이다. 비트베리의 가장 큰 특징 중 하나는 카카오 계정으로 지갑을 만들고, 전화번호로 암호화폐를 주고받을 수 있는 점이다. 페카즈는 비트베리의 특징을 이용해 자신이 보유한 다양한 종류의 암호화폐를 친구 빈센트와 상호 교환하고자 한다. 현재 페카즈의 비트베리 지갑 속에는 P개의 비트와 Q개의 베리가 들어 있다. 페카즈의 친구 빈센트는 엄청난 부자여서, 자신의 비트베리 지갑 속에 비트, 베리, 그리고 또 다른 단위인 코인과 비트코인을 각각 10.. 2024. 7. 2.
[Python] 백준 1189: 컴백홈 solved.ac 기분 Silver 1 백트래킹 문제는 모든 경우의 수를 살펴보는 럭키브루트포스(?)이기 때문에 분기문을 잘 작성해야 시간초과, 메모리 문제에서 벗어날 수 있다. 그러한 기틀을 다지기 위해 재귀를 구성해 중간에 살펴보지 않아도 되는 케이스는 도려낼 수 있는 로직으로 구성해 풀 수 있는 문제이다.문제한수는 캠프를 마치고 집에 돌아가려 한다. 한수는 현재 왼쪽 아래점에 있고 집은 오른쪽 위에 있다. 그리고 한수는 집에 돌아가는 방법이 다양하다. 단, 한수는 똑똑하여 한번 지나친 곳을 다시 방문하지는 않는다.      cdef  ...f  ..ef  ..gh  cdeh  cdej  ...f       bT..  .T.e  .Td.  .Tfe  bTfg  bTfi  .Tde       a... .. 2024. 7. 1.
2. 스택 (Stack) 스택이란? 후입선출(Last In First Out / LIFO) 특성을 가지는 선형 자료 구조이다. 구조가 간단하고 후입선출이라는 특성을 이용해 각종 알고리즘과 로직, 메모리에 사용된다. 예를 들어보자면, ctrl + z를 누르면 실행되는 '되돌리기'가 스택의 예이다. 가장 나중에 들어온 작업이 가장 먼저 나오는 방식이다. 스택의 연산기능명칭시간복잡도삽입pushO(1)삭제 및 반환popO(1)상단 값 조회topO(1)  스택의 모든 연산은 상수시간의 시간복잡도를 가지고 있다. 하지만 이는 장단점을 가지기 마련이다. 스택의 장점 1. 매우 간단하다. 배열과 더불어 간단한 구조, 배열보다 훨씬 간단한 연산과 규칙으로 구현과 사용이 매우 쉽다. 배열과 별도의 변수를 이용해 구현할 수 있고, 연결리스트로도 손.. 2024. 6. 28.
1. 배열 (Array) 배열이란? 배열은 선형 자료 구조의 대표적인 형태이다. 프로그래밍을 접해본 사람이면 누구나 배열의 존재를 알고있을 것이다. 동일한 타입의 데이터를 연속적인 메모리 공간에 저장하는 자료 구조이다. 배열의 장점 간단한 구조로 이루어져 빠른 접근이 가능하고, 연속적인 메모리 할당으로 캐시 적중률이 높아져 메모리 기대 성능이 좋다. 인덱스로 바로 직접 접근이 가능하기 때문에 접근하는 시간은 O(1) 상수시간으로, 인덱스를 알고 있다면 중간과정 없이 즉시 값을 꺼낼 수 있다. 또한, 우리가 생각하는 배열의 모양과 같이 실제 메모리 상에서도 연속적인 주소로 이루어져 있어 캐시 적중률이 높아 타 자료 구조에 비해 빠른 속도를 자랑한다. 배열의 단점 장점을 모두 잊게 만드는 치명적인 단점은, 생성 시 크기가 고정된다는.. 2024. 6. 27.
0. 자료구조란? 자료구조? 자료구조(Data Structure)는 데이터를 효율적으로 관리할 수 있도록 만든 데이터의 구조를 말한다. 데이터의 효율적인 접근과 변경을 위한 방법이기 때문에 알고리즘을 배우기 전에 무조건적으로 선행하여 학습해야하는 컴퓨터 과학 학문이다. 메모리는 1차원 구조이기 때문에, 세상 속에 존재하는 다차원 구조의 데이터를 메모리에 맞게 1차원으로 표현하는 방법을 학습한다.  데이터의 저장과 접근을 효율적으로 하기 위해서 자료구조는 매우 중요하다. 적절한 구조를 사용하면 알고리즘의 성능을 크게 향상시킬 수 있으며, 잘못된 구조를 선택하면 프로그램의 성능이 저하될 수 있다. 따라서 자료구조를 깊이 이해하고 상황에 맞게 활용하는 능력은 모든 소프트웨어 개발자에게 필수적이다. 예를 들어, 데이터 검색이 빈.. 2024. 6. 26.
반응형