본문 바로가기

깊이 우선 탐색42

[python] Stack과 DFS 자료 구조인 Stack과 DFS(깊이 우선 탐색)에 대해 알아보도록 하자. 1. Stack (스택) 스택(stack)은 제한적으로 접근할 수 있는 나열 구조로, 접근 방법은 항상 목록의 끝에서만 일어난다. 따라서 후입선출 (Last In First Out—LIFO)의 특성을 가지는 자료구조라고 불리운다. 이와 반대인 선입선출의 구조를 가진 queue도 존재하지만, 이번 글에서는 스택만 다루도록 한다. 스택에서는 다음과 같은 중요한 연산이 존재한다. S.size() 현재 스택에 들어있는 데이터 원소 개수를 반환한다. S.pop() 스택의 가장 윗 데이터를 반환하고, 삭제한다. S.push() 스택의 가장 윗 데이터를 추가한다. S.empty() 스택이 비었다면 1, 그렇지 않다면 0을 반환한다. S.ful.. 2022. 2. 27.
[백준] 2606번: 바이러스 (python) 2606번: 바이러스 문제 ) 신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다. 예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번 컴퓨터와 네트워크상에서 연결되어 있지 않기 때문에 영향을 받지 않는다. 어느 날 1번 컴퓨터가 웜 바이러스에 걸렸다. 컴퓨터의 수와 네트워크 상에서 서로 연결되어 있는 정보가 주어질 때, 1번 컴퓨터를 통해 웜 바이러스에.. 2022. 2. 24.