GitHub

https://github.com/Choidongjun0830

BFS 6

[백준] S1. 2468번 안전영역 / 분류: DFS, BFS

https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net DFS 풀이 import sys sys.setrecursionlimit(10 ** 8) N = int(sys.stdin.readline()) matrix = [] for i in range(N): matrix.append(list(map(int, sys.stdin.readline().split()))) dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def dfs(x, y, depth..

BFS, DFS 다시 공부

참고 더보기 https://youtu.be/BsYbdUnKZ-Y?si=NH3yYYRu0XnaSZnN https://youtu.be/7C9RgOcvkvo?si=D3bH2OfymjUXocs2 그래프 탐색 알고리즘 (그래프 : 여러 개체들이 연결되어 있는 자료구조) 대표적인 문제 유형 경로 탐색 유형(최단거리, 시간) 네트워크 유형(연결) 연결되어 있는 그룹의 개수 두 개체가 같은 네트워크 안에 있는지 조합 유형(모든 조합 만들기) 스택 먼저 들어온 데이터가 나중에 나가는 형식(선입후출)의 자료구조. 입구와 출구가 동일한 형태로 스택을 시각화할 수 있다. 파이썬에서 스택은 단순히 리스트와 append(), pop()으로 구현 가능하다. stack = [] stack.append(5) stack.pop() ....

알고리즘 2024.02.19

Baekjoon Online Judge 2146번 파이썬 😩

문제링크 https://www.acmicpc.net/problem/2146 2146번: 다리 만들기 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다 www.acmicpc.net bfs를 두번 쓰는 문제는 처음이라 어려웠다. 한 섬에서 다른 섬으로 가는 최단 거리를 찾는 문제다. 그래서 이 문제에서 해야 할 일은 섬 구분하기, 최단 거리 찾기가 있다. 이를 위해 bfs를 두번 사용해야한다. 나중에 한번 더 풀어봐야 할 문제다. 정답 코드 import sys from collections import deque dx = [-1,1,0,0] dy = [0,0,-1,1] d..

Baekjoon Online Judge 7576번 파이썬

문제링크 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 여러 개의 익은 토마토로부터 시작하기 위해, 큐를 함수 밖에서 선언하고 큐 삽입을 선언한다. 정답 코드 import sys from collections import deque def bfs(): while queue: x, y = queue.popleft() for i in range(4): pointX = x + dx[i] pointY = y + dy[i] if 0

Baekjoon Online Judge 1260번 파이썬

문제 링크 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net DFS, BFS 유형을 처음 접해보는 내 입장에서는 정말 어려운 문제였다. 이 문제를 반복해서 풀어봐야 할 것 같다. 정답 코드 import sys from collections import deque N, M, V = map(int, sys.stdin.readline().split()) graph = [[0]*(N+1) for i in range(..

DFS, BFS

다음에 풀어볼 백준 문제는 DFS, BFS 와 관련된 것인데 처음 들어보는 것이라 공부를 해보았다. ( 참고 : https://youtu.be/7C9RgOcvkvo ) 1. 스택과 큐 스택 : 선입 후출, 입구와 출구가 동일한 형태로 스택을 시각화한다. 파이썬에서는 append()와 pop() 메소드를 이용하면 스택 구현이 가능하다. print(stack[::-1]) 최상단부터 출력, print(stack) 최하단부터 출력할 수 있다. c++에서는 push()와 pop()으로 구현할 수 있다. 큐 : 선입 선출, 입구와 출구가 모두 뚫려있는 터널 형태로 스택을 시각화한다. from collections import deque => 큐 구현을 위해 deque 라이브러리를 사용한다. 코드를 작성할 때, ‘q..

728x90