inflearn logo
강의

Course

Instructor

[Python] DFS Algorithm Understandable Even for Liberal Arts Students! - Introductory Edition

Algorithm Class - Depth First Search 1 (Baekjoon 24479)

그래프 초기화

Resolved

277

kyg8821

6 asked

1

안녕하세요. 선생님 덕분에 멋진 강의를 듣고 있는 학생입니다.이제 유형 1을 다 수강했는데, graph를 초기화할 때 보통 N의 개수가 적으면 불리언 2차원 배열로 선언하고, N의 개수가 많으면 빈리스트로 구성된 2차원 리스트로 선언하는데요.그냥 모든 문제에 빈리스트로 구성된 2차원 배열을 선언하지 않는 이유가 N의 개수가 적으면 배열로 선언하고 조회하는 게 더 빠르기 때문인지 여쭤봐도 될까요?

python 코딩-테스트 알고리즘 dfs python3

Answer 1

1

gaebaljob

kyg8821님 안녕하세요 🙂

말씀하신 게 모두 맞습니다! 정리를 하자면 전부 빈 리스트에 append할 수 있습니다. 그래서 풀이를 통일하고 싶다면 이렇게 하는 게 제일 좋습니다!

물론 배열을 접근하는 게 성능이 좋지만, 그만큼 메모리 낭비도 발생하기 때문에 장/단점이 뚜렷합니다. 코딩테스트의 특성상 그 정도 메모리 낭비는 용납되기 때문에 더 빠른 솔루션이 더 좋다고 할 수 있지만, 제 경험 상 빈 리스트를 쓴다고 해서 timeout이 발생했던 적은 없어서 큰 차이는 없다고 봐도 될 것 같아요!

저는 강의를 하는 입장에서 여러 방식을 알려드리는 게 더 유익하다고 판단해서 여러가지 보여드렸는데, 솔루션을 통일하는 게 코딩 테스트 준비에 더 유리하기 떄문에 전부 빈 리스트에 append하는 방식을 쓰는 것도 좋을 것 같아요.

혹시 더 궁금하신 점이나 제 답변 중에 부족한 부분이 있으면 편하게 또 질문 주세요! 오늘도 공부하느라 고생 많으셨습니다 :)

itertools, sys같은 STL을 사용할 수 없는 경우 질문드립니다.(백준 11724)

1

26

1

백준 13565 침투 질문

1

88

2

침투/섬개수 질문

1

137

2

재귀함수 질문

1

142

1

백준 1260 (DFS 와 BFS) 프린트 위치 질문

1

120

1

촌수계산(백준 2644) 질문

1

183

2

다른 주제 강의

1

135

2

graph

1

194

1

재귀 함수 Depth

1

178

1

백준 DFS

1

213

1

[바닥장식][런타임에러] 질문 있습니다.

1

289

3

그래프 짤 때 adjacency matrix vs adjacency list

1

390

2

2644문제(촌수 구하기) 질문입니다.

1

249

2

DFS 문제 하나 여쭤봅니다!..

1

293

1

다음강의

1

241

1

알고리즘 수업 - 깊이 우선 탐색 2( 백준 24480) 번 질문

1

282

1

1260 문제 풀이에서는 함수 global로 변수 선언

2

209

1

PyPy3와 Python3

1

330

1

백준 2606

1

214

1

22479번 문제 런타임 에러 도와주세요 ㅠㅠ

1

437

1

11724 문제 질문

1

302

2

선생님! 바이러스 문제 코드 질문있어요오

1

271

2

질문있습니다!

1

329

1

2644 촌수계산 문제에 관한 질문

1

233

1