탐색

개발일지/Algorithm

백준 - 11725 트리의 부모 찾기 [DFS][BFS]

11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 1. 문제 요약 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. 2. 파이썬 2 - 1. BFS 백준 - 2606 바이러스 [BFS] 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 e-room.tistory.com 2 - 2. 코드 N = int(input()) tree = [[] for _ in range(..

개발일지/Algorithm

백준 - 2606 바이러스 [BFS]

2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 1. 문제 요약 컴퓨터의 수 n, 직접 연결된 컴퓨터의 수 m, 연결된 컴퓨터 쌍의 번호가 주어진다. 1번 컴퓨터와 직간접적으로 연결되어 있는 컴퓨터의 수를 구하시오. 2. 접근 방법 BFS(너비 우선 탐색) 알고리즘을 활용합니다. 1번을 기준으로 찾으면 되기 때문에, 4번과 7번은 무시합니다. 방문할 리스트를 생성하고 해당 리스트의 맨 앞부분에 1번을 추가합니다. (Deque 추천) 방문 리스트의 맨 앞 인덱스부터 순차적으로 방문합니다. 1번을 방문합니다. 1번을 ..

개발일지/Algorithm

백준 - 2606 바이러스 [DFS] 자바 백준 1위

2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 1. 문제 요약 컴퓨터의 수 n, 직접 연결된 컴퓨터의 수 m, 연결된 컴퓨터 쌍의 번호가 주어진다. 1번 컴퓨터와 직간접적으로 연결되어 있는 컴퓨터의 수를 구하시오. 2. 접근 방법 DFS(깊이 우선 탐색) 알고리즘을 사용합니다. 1번을 기준으로 찾으면 되기 때문에, 4번과 7번은 무시합니다. 1번에서 2번을 방문하고, 2번은 방문했다고 표시를 합니다. 2번에서 방문할 수 있는 곳들 중 방문하지 않은 곳을 방문합니다. 3번으로 방문 후, 더 이상 방문할 곳이 없으므..

개발일지/Algorithm

백준 - 1149 RGB거리 [DP]

1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 1. 문제 요약 RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다. 빨강, 초록, 파랑으로 집을 칠할 때, 연속되지 않게 칠할 수 있으며, 최소 비용을 구하라. 2. 접근 방법 먼저 가장 완벽한 알고리즘인 완전탐색으로 구현해 보았습니다. N = int(input()) rgb = [list(map(int, input().split())) for _ in range(N)] answer = 1..

개발일지/Algorithm

백준 - 14501 퇴사 [브루트포스]

14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 1. 문제 요약 스케줄이 주어지고 해당 스케줄에서 가장 많은 수익을 낼 수 있는 조합을 구하시오 2. 접근 방법 재귀함수를 이용하여 모든 조합을 계산합니다. 그중 가장 많은 수익을 낸 조합을 출력합니다. 3. 파이썬 def solution(index:int, p:int): global P if index == N: P = max(P, p) return elif index < N: solution(index+TP[index][0],p+TP[index][1]) # 일을 하거나 solution(index+1, p) # 하지 않거나 4. 자바 static private void recursive(int in..

E-room
'탐색' 태그의 글 목록