탐색 (Search) : 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 그래프 탐색 : 하나의 노드를 시작으로 다수의 노드를 방문하는 것 ✓ 노드 (Node) = 정점(Vertex) : 특정 지점 ✓ 간선 (Edge) : 노드와 노드를 연결하는 선 그래프 표현 방법 1. 인접 행렬 (Adjacency Matrix) : 2차원 배열에 각 노드가 연결된 형태를 기록하는 방식 연결되지 않은 노드끼리는 '무한의 비용'이라고 작성한다. 모든 관계를 저장하기 때문에 노드 개수가 많을수록 메모리 측면에서 비효율적이다. 원하는 정보를 얻기 위해서 행렬의 해당 위치만 찾으면 되기 때문에 속도가 빠르다. ## 인접 행렬 방식 예제 INF = 999999999 # 연결되지 않은 노드에 대한 무한의 비용 ..
파이썬
이번 포스팅 내용은 패스트캠퍼스 중, 이준희 강사님의 '자료구조 파트' 강의 내용을 정리한 것입니다. 스택 스택도 큐와 마찬가지로 LIFO, FILO 등의 여러 정책을 따른다. 가장 대표적으로 쓰이는 정책은 LIFO로, 좁은 상자에 블록을 쌓는 동작원리와 유사하다. 가장 밑바닥부터 블록을 차례로 쌓은 후, 다시 꺼낼 때는 가장 마지막에 넣은 블록부터 꺼낸다. 이와 유사하게, 스택은 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조이다. 스택의 기능 push() 스택에 데이터를 넣는 기능이다. pop() 스택에서 데이터를 꺼내는 기능이다. 그림으로 이해해보자. 스택의 특징 스택의 구조 프로세스의 함수 동작방식에서 스택이 사용된다. (프로세스 : 실행중인 프로그램) 스택의 장점 구조가 단순해서..
문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 몇 개 가지고 있는 숫자 카드인지 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있다. 이 수도 -10,000,000보다 크거나 같고, 10,0..