그래프탐색

PS/백준

[백준] 25418 - 정수 a를 k로 만들기

25418번: 정수 a를 k로 만들기 7(A), 8(연산 1), 9(연산 1), 18(연산 2), 19(연산 1), 38(연산 2), 76(연산 2), 77(연산 1)이 최소 연산이므로 정답은 7이다. www.acmicpc.net ✏️ 풀이 입력으로 a, k가 주어지는데 그냥 a를 k로 만드는 최소 연산 횟수를 출력하는 것이다. 최소, 최단 이런 단어가 보이면 이제는 바로 BFS로 풀면 되겠다는 생각을 한다. 뭐 아닐 수 도 있겠지만, 그건 많이 풀어보면 BFS구나, 아니구나를 판단할 수 있을 것이라고 믿는다. 큐에는 시작과 연산 횟수를 넣었다. 그렇게 연산을 하면 cnt를 증가 시키고, k에 도달하면 출력을 하고 끝을 낸다. BFS의 개념만 알면 금방 풀 수 있는 문제라서 쉽게 풀 수 있었다. 💻 코드..

PS/백준

[백준] 2583 - 영역 구하기

2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net ✏️ 풀이 입력으로는 k개의 영역을 준다. 그래서 나는 x1, y1, x2, y2로 입력을 받았다. 이렇게 입력을 받아서 previsit으로 입력받은 영역을 방문 처리했다. 간단하게 표현하면 미로에서 벽을 세운 느낌으로 처리했다. 그리고 BFS를 통해서 영역의 너비를 계산했다. 이문제에서는 처음 입력받은 좌표에 해당하는 구역만큼만 방문 처리를 했으면 금방 풀 수 있는 문제였다. BFS는 평소에 풀던 다른 문제처럼 처리를 하면 되는 거여서 금방..

PS/백준

실버2 유기농 배추(1012)

1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 이 문제는 상하좌우를 탐색하면서 연결된 컴포넌트를 다 이어서 그 연결된 컴포넌트가 몇 개인지 구하면 되는 문제였다. 저번에 푼 바이러스문제와 비슷해서 금방 풀 수 있었다. import sys from collections import deque input = sys.stdin.readline directions = [(-1, 0), (0, -1), (1, 0), (0, 1)] def bfs(x, y, matrix): queue = deque([(x, y)]) matrix[x..

PS/백준

실버3 바이러스(2606)

2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 바이러스 문제는 DFS와 BFS를 활용해서 풀 수 있는 간단한 문제입니다. 알고리즘2 수강하면서 풀다보니 CC(Connected Component)배우면서 유형이 비슷하다고 생각했습니다. # 바이러스 # https://www.acmicpc.net/problem/2606 import sys from collections import deque input = sys.stdin.readline def bfs(graph, visited, node): queue = deque..

jjw000628
'그래프탐색' 태그의 글 목록