본문 바로가기

자료구조 & 알고리즘108

[자료구조] 큐(queue) 파이썬으로 구현하기 Queue (선입선출) 큐는 먼저 들어온 자료가 가장 먼저 처리되는 자료구조 FIFO(First In First Out) 기반의 매우 유명한 자료 구조 순서 보장 큐(Queue)의 종류 1. Enqueue : 큐 맨 뒤에 어떠한 요소를 추가 예) 마지막으로 온 손님에게 번호표 발부 2. Dequeue : 큐 맨 앞쪽의 요소를 삭제 예) 창구에서 서비스를 받은 손님의 번호표를 대기목록에서 삭제 3. Peek : front에 위치한 데이터를 읽음 예) 다음 서비스를 받을 손님이 누구인지 확인 4. Front : 큐의 맨 앞의 위치(인덱스) 예) 다음 서비스를 받을 손님의 번호 5. Rear : 큐의 맨 뒤의 위치(인덱스) 예) 마지막에 온 손님의 번호 구현 # colab from collections im.. 2022. 4. 8.
[자료구조] 스택(stack) 파이썬으로 구현하기 stack (선입후출 or 후입선출) 스택은 가장 나중에 들어온 자료가 가장 먼저 처리되는 LIFO(Last-In-First-Out) 자료구조 사용법 1. push(삽입) : 아래 그림과 같이 데이터을 집어 넣는 것으로 먼저 들어온 값 차례대로 삽입 2. pop(삭제) : push와 반대로 값을 삭제 3. top(), peek(읽기, 확인) : 위치에 해당하는 데이터를 읽음, 값에 변화는 없음 구현 # colab # 값 추가하는 함수 생성 def push(stack, element): stack.append(element) # 맨 뒤부터 값을 빼는 함수 생성 def pop(stack): print(f'pop: {stack.pop()}') # 값을 확인하는 함수 def peek(stack): print(".. 2022. 4. 8.
[자료구조] 자료구조의 정의 & 분류 자료구조(Data Structure)란? 1. 자료구조는 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미 검색, 순회, 저장, 삭제, 변경 2. 자료를 담는 추상적인 틀 3. 데이터의 형태와 쓰임에 가장 적합한 자료구조를 쓰는 것은 매우 중요 자료 구조 분류 구현에 따라 배열 : 가장 일반적인 구조, 메모리 상에 같은 타입 자료가 연속적으로 저장 튜플 : 둘 이상의 자료형을 묶음으로 다루는 구조 연결 리스트 : 노드를 단위로 한다. 노드는 자료와 다음 노드를 가리키는 참조값으로 구성 원형 연결 리스트 : 각 노드는 다음 노드를 가리키고, 마지막 노드가 처음 노드를 가리킴 이중 연결 리스트 : 각 노드는 이전 노드와 다음 노드를 가리키는 참조값으로 구성된다. 처음 노.. 2022. 4. 8.
[자료구조] 빅오(Big-O)표기법 빅오(Big-O) 표기법 가장 큰 영향력이 있는 항만 표시(영향력 없는 항 무시), 상수항 무시 알고리즘 효율성을 표기해주는 표기법 알고리즘 효율성은 데이터 개수(n)가 주어졌을 때, 뎃셈, 뺄셈, 곱셈 같은 기본 연산의 횟수 시간 복잡도(시간 효율성), 공간 복잡도(메모리 효율성) 크기 : O(1) < O(logN) < O(N) < O(NlogN) < O(N²) < O(2^n) 크기가 작을수록 실행 횟수가 적고 시간 복잡도가 낮음 크기가 클수록 실행 횟수가 많고 시간 복잡도가 높음 빅오 표기법 예제 1. O(1) : 입력 데이터의 크기와 상관없이 항상 일정한 시간이 걸림 hash 2. O(N) : 입력 데이터의 크기에 비례해서 시간이 소요 3. O(N²) : 입력 데이터의 크기에 제곱에 비례해서 시간이.. 2022. 4. 7.
[자료구조 & 알고리즘] 시각화 사이트 자료구조와 알고리즘 시각화 사이트 참고 처음 공부하는 자료구조와 알고리즘에 도움 됨 1. Data Structure Visualizations Data Structure Visualization www.cs.usfca.edu 2. Visu Algo visualising data structures and algorithms through animation - VisuAlgo VisuAlgo is free of charge for Computer Science community on earth. If you like VisuAlgo, the only "payment" that we ask of you is for you to tell the existence of VisuAlgo to other Compu.. 2022. 4. 7.
<공부> [이것이 코딩 테스트다 with 파이썬] 4장 구현 예제 https://www.youtube.com/watch?v=2zjoKjt97vQ&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=2 4장 구현 이론 예제 4-1 [상하좌우] 난이도 ●○○ ㅣ 풀이 시간 15분ㅣ시간 제한 1초ㅣ메모리 제한 128MB 여행가 A는 N x N 크기의 정사각형 공간 위에 서 있다. 이 공간은 1 x 1크기의 정사각형으로 나누져 있다. 가장 왼쪽 좌표는 (1,1)이며, 가장 오른쪽 아래 좌표는 (N,N)에 해당한다. 여행가 A는 상,하,좌,우 방향으로 이동할 수 있으며, 시작 좌표는 항상 (1,1)이다. 우리 앞에는 여행가 A가 이동할 계획이 적힌 계획서가 놓여 있다. L:왼쪽으로 한 칸 이동 R:오른쪽으로 한 칸 이동 U:위로 한칸 칸 이동 D:.. 2021. 11. 24.