728x90
반응형
SMALL

DFS 44

[Python] 2667번 단지번호 붙이기

✏️ 문제 문제 파악집이 모여있는 곳을 모두 접근해야 하므로 깊이 우선 탐색을 사용해서 풀었다.그리고 단지 개수를 세야 하므로 깊이 우선 탐색을 돌 때마다 개수를 +1 해주었고 깊이 우선 탐색에 단지 번호를 매개 변수로 주어 풀었다. 여기서 나는 visited 2차원 배열에 조건을 주었는데0 → 방문 안해도 되는 거1 → 방문한 거-1 → 방문해야 되는데 아직 방문 안한 거이렇게 세 가지로 나눠서 조건문을 구분하였다. 예제를 넣었을 때는 잘 풀렸는데 틀렸다고 나온다면 각 단지내 집의 수를 단지 번호 차례대로가 아닌 각 단지내 집의 수를 오름차순으로 출력했는지 확인해보아야 한다! (내 얘기) 알고리즘그래프 이론그래프 탐색너비 우선 탐색깊이 우선 탐색  코드n = int(input())d = [(-1, 0..

PS/BOJ 2024.08.10

[Python] 2606번 바이러스

✏️ 문제 문제 파악처음 바이러스에 걸린 컴퓨터와 인접된 모든 컴퓨터를 돌아야 하므로 BFS가 아닌 DFS를 사용해서 풀어야 한다. # 1graph = [[0] * (c+1)] * (c+1) graph[1][2] = 1print(graph)# [[0, 0, 1, 0],# [0, 0, 1, 0],# [0, 0, 1, 0],# [0, 0, 1, 0]]# 2graph = [[0] * (c+1) for _ in range(c+1)]graph[1][2] = 1print(graph)# [[0, 0, 0, 0],# [0, 0, 1, 0],# [0, 0, 0, 0],# [0, 0, 0, 0]] 처음 graph 2차원 배열을 초기화할 때 # 1 과 같이했는데 원하는 값이 계속 안나왔다.  찾아보니 # 1 과 ..

PS/BOJ 2024.08.09

[알고리즘] DFS와 BFS

DFS (깊이 우선 탐색) 와 BFS (너비 우선 탐색) ?그래프 탐색 알고리즘의 대표적인 예로 이 알고리즘들은 그래프, 트리, 네트워크 등의 자료구조를 탐색하는 데 사용한다. 그래프는 노드(정점)와 노드 간의 연결선(간선)으로 이루어진 자료구조를 말한다.노드 (Vertex) : 그래프에서 하나의 개체를 말하며 정점이라고도 한다.간선 (Edge) : 두 노드를 연결하는 선인접 노드 : 특정 노드와 직접 연결된 노드DFS (깊이 우선 탐색)시작 노드에서부터 한 방향으로 갈 수 있을 만큼 깊이 내려가며 탐색을 진행한다. 그 깊이의 노드를 모두 탐색한 후 더 이상 갈 수 없게 되면 이전 정점으로 돌아가 다음 노드를 탐색하는 방식이다. 탐색 과정시작 노드에서 출발하여 다음 노드로 이동더 이상 방문하지 않은 인..

알고리즘 2024.08.08

[JAVA] 15649번 N과 M (1)

15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 예제 입력 출력 3..

PS/BOJ 2024.02.04
728x90
반응형
LIST