인프런 커뮤니티 질문&답변

도토리님의 프로필 이미지
도토리

작성한 질문수

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

연결 요소의 개수 (백준 11724)

graph, visited 사이즈 관련 문의

해결된 질문

작성

·

289

·

수정됨

2

graph, visited의 사이즈를 다음 코드와 같이 노드 개수에 맞게 (n+1)로 하면 되겠다고 생각했는데, 노드 개수의 최댓값인 1000을 이용해 사이즈를 정하신 이유가 무엇인가요??

graph = [[False]*(n+1) for _ in range(n+1)]
visited = [False]*(n+1)

 

 

답변 1

1

도토리님 안녕하세요!

 

좋은 질문 주셔서 감사합니다. 말씀하신대로 실제로 해당 문제에서 필요한 영역은 (N + 1) x (N + 1)이기 때문에 작성해주신 방식이 가장 효율적인 방식입니다. 다만 저는 N의 최댓값인 1000으로 시작을 하면, 중간에 어떤 값이 들어오냐에 따라 신경 쓸 걸 하나 줄일 수 있어서 들어올 수 있는 최댓값을 사용했고, 간혹 문제마다 N + 1이 아니라 N + 2, N + 100 과 같이 약간씩 더 필요한 경우들이 생기는데, 너무 딱 맞춰서 할당하면 괜한 불량으로 디버깅하는 경우가 발생하더라고요. 물론, 개인 공부하실 땐 이런 디버깅도 큰 도움이 되지만, 실제 시험장에서는 이런 걸로 떨어지기 아쉬워서 넉넉히 잡아두는 것도 좋은 것 같습니다.

이렇게 해도 메모리 상에 낭비되는 영역이 크지 않아서 넉넉하게(?) 사용했다고 이해하면 될 것 같습니다!

더 궁금하신 점 있으시면 언제든 질문 남겨주세요 :) 감사합니다!

도토리님의 프로필 이미지
도토리

작성한 질문수

질문하기