🚩 그래프이론, 그래프탐색, DFS, BFS thinking 처음에 인접리스트로 풀었는데 인풋값을 뭘 먼저 받느냐에 따라 dfs에서 순서가 달라져서 인접행렬로 풀었다. (같은 거리의 노드라면 숫자가 작은 순으로 진행되야 하기 때문) dfs는 재귀여서 그냥 바로바로 출력하고자 함수 내에 print처리했고, bfs는 queue를 이용해서 풀었다. 코드 def DFS(V): visited[V] = 1 # 방문체크 print(V, end=' ') # 재귀여서 바로 출력 for v in range(1, N+1): if not visited[v] and edge_matrix[V][v] == 1: DFS(v) def BFS(V): queue = [V] # 출발점 visited = [V] # 방문 while queue..
🚩 그래프이론, 그래프탐색, DFS, BFS thinking 상하좌우 다 탐색하면서 방문탐색하고 값이 1이면(==배추면) 카운팅 1 증가 ⭐ 처음에 그냥 풀었더니 런타임에러가 났다. 구글링 했더니 재귀 limit을 설정해주지 않아서 발생한 문제라고 한다. K(1 ≤ K ≤ 2500)의 범위가 엄청 커서 그런듯? 파이썬의 기본 재귀 한도가 (1000)이어서 재귀 깊이가 1000을 넘어갈 경우 모듈을 추가해줘야한다. 파이썬 최대 재귀 깊이 늘리는 모듈 import sys sys.setrecursionlimit(탐색하고자하는 깊이) 코드 import sys sys.setrecursionlimit(10000) def dfs(r,c): dr = [0, 1, 0, -1] dc = [1, 0, -1, 0] a[r][..
🚩 DFS, 백트래킹, 재귀함수, 스택 thinking for문을 돌면서 1부터 리스트에 넣고 M개가 다 쌓이면 출력하도록 작성함. 어차피 for문이 숫자 순서대로 돌기 때문에 수열의 순서는 굳이 고려 안함. 이미 방문했으면 건너뛰고, 방문 안했으면 방문 체크 한 후, 출력리스트에 넣고 다음 함수를 호출. 코드1 방문체크로 푼 풀이 def DFS(): if len(s) == M: print(*s) return for i in range(1, N+1): if visited[i]: # 이미 방문했으면 건너뜀 continue # 방문 안했으면 방문체크 후, 출력 리스트에 넣음 visited[i] = True s.append(i) DFS() # 함수 다시 호출 s.pop() # 원상복귀 과정 필요 visited..
- 20056 마법사 상어와 파이어볼
- BFS
- dfs
- 백준
- 영어끝말잇기
- git 미러링
- 2579 계단오르기
- 브루트포스
- merge에러
- 기지국설치
- 21609 상어 중학교
- 삼성기출
- 파이썬
- merge 에러
- 20057 마법사 상어와 토네이도
- 삼성코테
- 17406 배열돌리기4
- 프로그래머스
- dp
- react
- Python
- 알고리즘
- swea
- 2018 카카오 공채
- 보석쇼핑
- Total
- Today
- Yesterday