결국 인구이동시키는 시뮬레이션을 할수록 인구이동이 발생하는 확률이 줄어든다고 생각하시면 이해하기 편합니다.
(2500(모든칸을 한번씩만 방문하게 되므로 50*50)+(하나의 케이스당 발생하는것이므로 합연산으로 연산해줍니다)2500(인구이동을 각칸마다 계산해주는 과정)) * (while문을 도는 횟수 )
이렇게인데 결국 위의 작성하신 코드대로라면 사실 bfs를 도는과정에서 발생하는 상수시간 복잡도 O(4)도 무시할수 없이 커지게 되서 불가능하게 됩니다.
하지만 인구이동을 하는과정에서 각 칸의 편차가 점점 줄어든다고 생각하시면 절대 터지지 않을 겁니다.
jsjsjs0775 5년 전
bfs로 문제를 풀어보았는데 정답은 맞췄지만
복잡도계산을 어떻게 해야되는지 잘모르겠어서 질문드립니다,,
제 생각에 복잡도가 bfs가 V^2(인접행렬)이므로
'1번의 인구이동'에서 일어나는 복잡도는 약 2500*2500 라고 생각되는데요
조건에 인구이동발생 횟수가 2000번보다 작은 입력만 주어진다면
2500*2500*2000의 복잡도를 가져서 12,500,000,000 의 결과가 나오는데 이러면 시간초과가 나오지 않나요?
복잡도계산을 어떻게해야 올바르게 나올까요?,,,