[Python] 링 버퍼 (Ring buffer) 와 원형 큐
·
자료 구조
고정된 크기의 메모리 공간(버퍼)을 순환적으로 사용하는 자료구조. 배열의 끝에 도달하면 다시 시작위치로 돌아가서 데이터를 저장하거나 읽는 방식주요 특성고정 크기 메모리 사용미리 정해진 크기의 배열(버퍼)을 사용함동적 크기 조절 없이 항상 일정한 메모리 사용순환적 구조 (원형 구조)배열의 끝에 도달하면, 다음 요소는 배열의 첫 번째 위치부터 기록됨인덱스 관리 시 모듈로(%) 연산 사용하여 wrap-around 처리빠른 데이터 접근인덱스 계산만으로 삽입과 삭제 연산(O(1))을 수행함실시간 데이터 스트림 처리나 버퍼링에 적합FIFO 원칙 적용기본적으로 큐와 같은 선입선출(FIFO) 특성을 따름데이터를 넣은 순서대로 읽어내거나 제거함구성 요소버퍼 (배열): 데이터를 저장할 고정 크기의 배열front (읽기 포..
[Python] 큐 (queue) 기본개념
·
자료 구조
데이터를 임시 저장할 때 쓰는 자료구조입, 출력 순서는 선입 선출 FIFO(First In First Out) 방식개요큐는 데이터를 저장할 때 한쪽 끝(뒤, rear)에서 삽입(enqueue)하고, 다른 쪽 끝(앞, front)에서 삭제(dequeue)하는 자료구조. 즉, 먼저 들어온 데이터가 가장 먼저 나감주요 특성FIFO 특성:선입선출(First-In, First-Out): 큐에 먼저 삽입된 데이터가 가장 먼저 삭제이는 대기열, 티켓 발권 시스템, 네트워크 패킷 처리 등 실제 상황에서 자연스럽게 발생하는 순서를 반영기본 연산enqueue(item):큐의 뒤쪽에 새로운 데이터를 추가큐가 가득 찬 경우(배열을 사용한 고정 크기 구현 시) 예외 처리를 하거나, 동적 크기 조정을 수행할 수 있dequeue(..
[Python] 백준 3190 - 뱀 (deque와 list를 활용한 queue 구현)
·
Algorithm
주의제 능력 부족으로 딱히 도움이 안될 확률이 높습니다문제는 여기에서 https://imgur.com/you-can-actually-win-snake-who-knew-ord27qI문제 자체는 고오전 게임인 뱀 게임을 구현하는 내용이다.게임판을 생성하고, 그 위에 뱀이 먹으면 길어지는 사과를 놓고뱀이 사과를 먹으면 길어질 뿐인 단?순한 게임이다결론부터 말하면, 난 이 문제를 하루종일 붙들게되었다뭐 다른 문제들도 다 비슷한 상황이지만가장 많은 시간을 차지한건 구현 구상인데,도저히 어떻게 큐를 사용해서 게임을 구현하라는건데 라는 생각만 계속 맴돌았다그간 해온건 배열, 탐색뿐인데 아니 들어오고 나가는게 왜 뱀이되는건데..반나절을 그렇게 시간을 보내고, 결국 기계의 손을 빌렸다그렇다, 내 수 시간은 그에게 단 '..