[내일배움캠프 4-5일] 코드카타 문제, 스쿼드 문제, bfs
로또의 최고 순위와 최저 순위def solution(lottos, win_nums): # 맞은 당첨 숫자의 개수를 카운트 cnt = 0 # 0이 몇 개인지 카운트 zero_cnt = 0 for i in lottos: if i == 0: zero_cnt += 1 elif i in win_nums: cnt += 1 # 개수에 따른 순위 딕셔너리로 저장 dict = {6:1, 5:2, 4:3, 3:4, 2:5, 1:6, 0:6} answer = [] answer.extend([dict[cnt + zero_cnt], dict[cnt]]) # answer.extend([3, 5]) return a..
[내일배움캠프 4-2일] DFS, BFS, 알고리즘 스쿼드 과제
DFSDFS(Depth First Search)는 깊이 우선 탐색.말 그대로 하나의 루트를 최대한 깊숙하게 들어가며 탐색하고 다시 돌아가 다른 루트로 탐색하는 방식.자식 노드들을 순서대로 탐색한다고 생각하면 된다.이러한 그래프가 있다고 했을 때 DFS를 두가지 방법으로 구현할 수 있다. 1. 재귀함수로 구현[1, 2, 5, 6, 7, 3, 4] 순서로 탐색, 왼쪽 먼저 가는 깊이 우선 탐색이라고 생각하면 된다.def dfs_recursive(node, visited): # 방문처리 visited.append(node) # 인접 노드 방문 for adj in graph[node]: if adj not in visited: dfs_recursive(adj..