728x90
반응형

dfs 3

[파이썬] BOJ_11725(트리의 부모 찾기) dfs/bfs

문제 https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 해설 가장 기본적인 dfs/bfs 문제들은 visited 배열을 만들어서 방문 여부를 저장하는데 이 문제는 그 대신 부모 노드를 저장하면 된다. 그 외에는 다른 그래프 탐색 문제 풀 듯 풀면 된다. 코드 -파이썬 #백준 11725(트리의 부모 찾기) ##dfs 풀이 import sys input = sys.stdin.readline sys.setrecursionlimit(1000000) n = int(input()) graph = [[] for _ in ..

알고리즘/백준 2023.06.27

[파이썬] BOJ_4963(섬의 개수)

문제 https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 해설 이 문제는 좌표를 dx, dy에 저장하고 dfs 혹은 bfs로 풀면 된다. 좌표를 이용한 그래프 탐색 문제는 처음 풀어서 어떤 식으로 풀어야 하는지 당황스러웠는데 이런건 가장 이해하기 쉽게 푼 다른 사람 코드를 보고 외우는게 최고인 것 같다. 코드 -파이썬 #백준 4963(섬의 개수) # 1 : 땅, 0 : 바다 #dfs 풀이 import sys input = sys.stdin.r..

알고리즘/백준 2023.06.15

[파이썬] BOJ_2644(촌수계산)

문제 https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net 해설 입력값을 받고 그래프를 생성하는 부분을 지나면 dfs 혹은 bfs로 문제를 풀어야 한다. dfs로 풀 때는 촌수를 cnt에 저장했다. 함수 한 번 씩 돌 때 마다 촌수가 1씩 올라간다. bfs로 풀 때는 deque를 이용하면 된다. 따로 촌수를 받을 필요는 없고 visited 변수에 현재 visited 값에 1촌을 더해서 저장해주면 된다. 처음 a를 1로 시작하는데 ..

알고리즘/백준 2023.05.30
728x90
반응형