inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

알고리즘 수업 - 깊이 우선 탐색 1 (백준 24479)

graph를 만들 때

302

kyg8821
1

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

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

답변 1

1

개발자로 취직하기

kyg8821님 안녕하세요 🙂

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

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

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

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

학습법

0

36

1

비반도체 필드에서 이직이 가능할까요?

0

46

1

정처기2회실기를 마치고.

0

70

0

코테 관련 질문

0

58

2

코테 준비 방법 문의

0

55

1

공부 시작..

0

45

1

강의 연장 문의

0

105

1

고민이있습니다...!

0

155

1

강의연장 문의

0

102

1

예전 기출 강의도 반드시 봐야되나요??

0

151

1

챌린지 교재문의

1

159

1

학습 순서 문의드립니다

0

150

1