반응형 전체 글97 스택(Stack) 자료구조란? (C언어, Java, Python 예시코드 포함) (1) 스택(Stack) 자료구조란?스택(Stack)은 데이터를 후입선출(LIFO, Last In First Out) 방식으로 처리하는 선형 자료구조입니다. 즉, 가장 나중에 삽입된 데이터가 가장 먼저 제거됩니다. 이 특성 덕분에 함수 호출 관리, 계산기 구현, 문자열 역순 처리 등 다양한 프로그래밍 문제에서 활용됩니다. (2) 스택의 기본 동작삽입(Push): 스택의 맨 위에 데이터를 추가.삭제(Pop): 스택의 맨 위 데이터를 제거.확인(Peek 또는 Top): 스택의 맨 위 데이터를 제거하지 않고 확인. (3) 스택의 주요 특징후입선출(LIFO): 나중에 삽입된 데이터가 먼저 제거됨.제한된 접근: 데이터는 스택의 맨 위에서만 삽입 및 제거 가능.구현 방식: 배열 또는 연결 리스트를 사용. (4) 스.. 2024. 12. 18. 큐(Queue) 자료구조란? (C언어, Java, Python 예시코드) (1) 큐(Queue) 자료구조란?큐(Queue)는 먼저 들어온 데이터가 먼저 나가는 선입선출(FIFO, First In First Out) 방식으로 동작하는 데이터 구조입니다. 이러한 특성 때문에 대기열, 작업 스케줄링, 메시지 처리 등 다양한 응용 분야에서 활용됩니다. (2) 큐의 기본 동작삽입(Enqueue): 큐의 끝(Rear)에 데이터를 추가.(예를들어 50을 큐에 추가할 경우 40에 위치한 rear를 한칸 오른쪽으로 밀고 그 칸에 추가)삭제(Dequeue): 큐의 앞(Front)에서 데이터를 제거.(현재 front가 위치한 10을 빼내고 deque 후 front는 20을 가리킴)보기(Peek): 큐의 앞에 있는 데이터를 제거하지 않고 확인.(단순히 현재 front가 가리키고 있는 값이 뭔지만 .. 2024. 12. 18. 타입 캐스팅을 활용해서 성능 개선하기 이번 글에서는 타입 캐스팅을 활용해서 코드 실행시간을 단축시키는 스킬에 대해서 알아보도록 하겠습니다. 1억개의 char형 배열을 0으로 초기화해야하는 상황이라고 가정하겠습니다. 보통 아래 코드 처럼 1억개의 원소를 하나하나 초기화 하는 방식으로 구현할 것입니다. #include#includechar arr[100000001];int main(void) { clock_t start = clock(); for (int i = 0; i 이 코드를 실행시켜보면 제 컴퓨터 환경에서는 약 250ms 정도가 걸립니다. 타입 캐스팅을 활용하면 약 75ms로 실행시간을 단축시킬 수 있습니다. (1) 핵심 아이디어char 자료형 = 1 bytelong long 자료형 = 8 byte같은 배열의 원소들의 주소는 연속적이.. 2023. 8. 13. 링크드 리스트(2) - 성능 개선 2023.04.20 - [자료구조/LINKED LIST 링크드 리스트] - 1. 링크드 리스트(Linked List) - 더블 링크드 리스트(메모리 풀 방식) 1. 링크드 리스트(Linked List) - 더블 링크드 리스트(메모리 풀 방식)이번 글에서는 링크드 리스트 중 더블 링크드 리스트에 대해서 알아보고, 실제로 C언어 코드로 구현까지 해보도록 하겠습니다. 일반적으로 동적할당을 이용한 구현 코드가 널리 알려져 있지만,best-coding.tistory.com 이전 글에서는 링크드 리스트가 무엇인지 알아보고 실제로 더블 링크드 리스트를 메모리 풀 방식으로 구현해봤습니다. 이번 글에서는 링크드 리스트의 성능을 개선할 수 있는 방법을 알아보도록 하겠습니다. (1) 특정 노드에 빠르게 접근하기링크드.. 2023. 4. 21. 링크드 리스트(Linked List)(1) - 더블 링크드 리스트(메모리 풀 방식) 이번 글에서는 링크드 리스트 중 더블 링크드 리스트에 대해서 알아보고, 실제로 C언어 코드로 구현까지 해보도록 하겠습니다. 일반적으로 동적할당을 이용한 구현 코드가 널리 알려져 있지만, 저는 메모리 풀 방식을 활용한 코드를 작성하도록 하겠습니다(왜냐하면 알고리즘 문제 풀이시에는 메모리 풀 방식이 훨씬 시간이 적게 걸리기 때문입니다.) 자세한 내용은 밑에서 설명드리도록 하겠습니다. 링크드 리스트의 경우 직접 구현시에 포인터와 구조체를 사용합니다. "포인터, 구조체, 구조체 포인터"가 무엇인지 잘 모르시는 분들을 해당 내용을 먼저 공부하시고 다시 이 글을 보시면 훨씬 좋을 것 같습니다! (1) 링크드 리스트란?링크드 리스트는 위 그림처럼 여러 노드들을 연결한 자료구조입니다. 저장하는 데이터 하나의 단위를 일.. 2023. 4. 20. 이전 1 ··· 15 16 17 18 19 20 다음 반응형