BFS
-
아직 dfs 개념이 제대로 안잡혀있는 것 같아 다시 정리해봅니다. 💡 문제 설명 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. 각 숫자는 1 이상 50 이하인 자연수입니다. 타겟 넘버는 1 이상 1000 이하인 자연수입니다. 입출력 예 입출력 예 설명 입출력 예 #..
[프로그래머스] 타겟 넘버 with Python아직 dfs 개념이 제대로 안잡혀있는 것 같아 다시 정리해봅니다. 💡 문제 설명 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. 각 숫자는 1 이상 50 이하인 자연수입니다. 타겟 넘버는 1 이상 1000 이하인 자연수입니다. 입출력 예 입출력 예 설명 입출력 예 #..
2023.07.01 -
이 문제는 bfs를 활용하여 풀었다. 👩🏻💻 코드 구현 from collections import deque m, n = map(int, input().split()) graph = [list(map(int, input().split())) for _ in range(n)] queue = deque([]) dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] day = 0 for i in range(n): for j in range(m): if graph[i][j] == 1: queue.append([i, j]) def bfs(): while queue: x, y = queue.popleft() for i in range(4): nx, ny = dx[i] + x, dy[i] + y if 0
[백준 문제풀기] #7576번 - 토마토 with Python이 문제는 bfs를 활용하여 풀었다. 👩🏻💻 코드 구현 from collections import deque m, n = map(int, input().split()) graph = [list(map(int, input().split())) for _ in range(n)] queue = deque([]) dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] day = 0 for i in range(n): for j in range(m): if graph[i][j] == 1: queue.append([i, j]) def bfs(): while queue: x, y = queue.popleft() for i in range(4): nx, ny = dx[i] + x, dy[i] + y if 0
2023.05.23 -
그래프 정점(node)과 그 정점을 연결하는 간선(edge)으로 이루어진 자료구조 연결된 노드 간의 관계를 표현할 수 있는 자료구조 방향이 있는 그래프도 있고 없는 그래프도 있다. 루트 노드의 개념이 없고, 부모- 자식 간의 개념이 없다. 2개 이상의 경로가 가능하다. 트리 더보기 트리 (그래프의 한 종류) 그래프와 같이 노드와 노드간을 연결하는 간선으로 구성된 자료구조 두 개의 노드 사이에 반드시 1개의 경로만을 가지며, 부모- 자식 관계가 형성 되어있다. 사이클이 존재하지 않는 방향그래프이. DFS/ BFS 알기 전 알아야 할 지식 재귀함수 💡 재귀함수의 개념 재귀함수란, 자신을 다시 호출하여 작업을 수행하는 방식 while문이나 for문을 사용하지 않고 자기 자신을 무한히 호출 할 수 있고, 종료 ..
그래프 탐색 알고리즘 - 깊이우선탐색(DFS)/ 너비우선탐색(BFS)그래프 정점(node)과 그 정점을 연결하는 간선(edge)으로 이루어진 자료구조 연결된 노드 간의 관계를 표현할 수 있는 자료구조 방향이 있는 그래프도 있고 없는 그래프도 있다. 루트 노드의 개념이 없고, 부모- 자식 간의 개념이 없다. 2개 이상의 경로가 가능하다. 트리 더보기 트리 (그래프의 한 종류) 그래프와 같이 노드와 노드간을 연결하는 간선으로 구성된 자료구조 두 개의 노드 사이에 반드시 1개의 경로만을 가지며, 부모- 자식 관계가 형성 되어있다. 사이클이 존재하지 않는 방향그래프이. DFS/ BFS 알기 전 알아야 할 지식 재귀함수 💡 재귀함수의 개념 재귀함수란, 자신을 다시 호출하여 작업을 수행하는 방식 while문이나 for문을 사용하지 않고 자기 자신을 무한히 호출 할 수 있고, 종료 ..
2023.04.14