작성
·
468
0
안녕하세요 강사님! 저는
http://boj.kr/6c770daceea84800b760a9dd2fccfff9 //제 코드의 rain은 강사님의 d(depth)와 동일합니다.
while구문으로 풀어봤는데, 시간초과라고 뜹니다. 제 코드의 시간복잡도는 100 x 100 x 100해서 백만이 맞는건가요??
추가로 while문 보다는 for문으로 푸는게 시간복잡도를 줄이는데 더 좋은건가요?
답변 1
1
안녕하세요 1209님 ㅎㅎ
for문과 while문의 차이는 그닥 없습니다.
다만,
코드가 좀 잘못된게 있는데요.
int rain = 1;
while(rain < 101){
int cnt = 0;
fill(&visited[0][0], &visited[0][0] + 104 * 104, 0);
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
if(a[i][j] > rain && !visited[i][j]){
dfs(i, j, rain); cnt++;
}
}
}
rain++;
ret = max(ret, cnt);
}
앞의 코드처럼 해서 제출해보시겠어요?
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.