\
[자료구조] 스택(Stack)
·
Algorithm/개념
📦 스택(Stack)스택(Stack)은 데이터를 한쪽 방향으로만 넣고 꺼내는 자료구조입니다. 후입선출(LIFO, Last In First Out)방식으로 동작하여 가장 마지막에 들어온 데이터가 가장 먼저 나가는 구조입니다.예를들어, 접시를 쌓아두고 위에서부터 하나씩 사용하는 것과 같습니다.스택의 핵심은 “순서대로 데이터를 넣고, 마지막 데이터를 삭제한다.” 이며, 핵심을 이해하려면 스택이 동작하는 과정을 살펴보면 다음과 같습니다. 🏓 동작 방식1. 데이터 추가(push)앞에서부터 순서대로 데이터를 추가합니다.2. 데이터 제거(pop)가장 마지막 데이터를 제거합니다.3. 스택의 가장 마지막 데이터 확인마지막에 있는 데이터를 확인합니다.4. 스택이 비어있는지 확인스택이 비어있는지 확인하는 방법은 스택의 ..
[자료구조] 큐(Queue)
·
Algorithm/개념
큐(Queue) 란? 선입선출(FIFO, First In First Out) 형식을 갖는 자료구조 → 먼저 들어간 입력이 먼저 나옴 종류 선형 큐(Linear Queue) 일반적인 리스트 형태를 갖으며, 선입선출 형식을 갖음 원형 큐(Circular Queue) 처음과 끝이 있는 것이 아닌, 회전하며 인덱싱 삽입, 출력에 있어 메모리 효율을 높일 수 있음 우선순위 큐(Priority Queue) 먼저 입력한 순서가 아닌, 우선순위를 두고 우선순위가 높은 순서로 출력 구현 리스트 생성 list의 append를 활용하여 구현 queue = [] index를 이용한 구현 front = 0 rear = -1 queue = [0 for _ in range(N)] 삽입(EnQueue) list의 append를 활용..
1717. 집합의 표현
·
Algorithm/BaekJoon Review
https://www.acmicpc.net/problem/1717 문제 해석 합집합과 같은 집합인지 확인하는 문제로 분리집합(Union-Find)의 대표적인 문제이다. 구현 방법 총 3단계로 나누어 구현 Root를 저장할 배열 초기화 Find 함수 작성 같은 Root를 가지고 있는지 확인( 같은 집합인가 확인) Union 함수 작성 서로 다른 두 집합을 합집합 (Root 를 같게 함) 이미 같으면 할 필요 없음 코드 # 1717 집합의 표현 import sys input = sys.stdin.readline def find(num:int)->int: if parent[num] == num: return num parent[num] = find(parent[num]) return parent[num] de..