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

dkswhdgur1209님의 프로필 이미지
dkswhdgur1209

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2-C

2-C while구문 시간복잡도 질문입니다.

작성

·

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점은 제가 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

dkswhdgur1209님의 프로필 이미지
dkswhdgur1209

작성한 질문수

질문하기