강의

멘토링

로드맵

Inflearn brand logo image

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

K케이님의 프로필 이미지
K케이

작성한 질문수

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

3-A

3-A 15686번 시간복잡도 질문 드립니다.

작성

·

9

0

안녕하세요 선생님~!

처음엔 15686번 문제를 bfs로 곁들여서(?) 풀었는데 시간초과가 나더라고요. 그래서 bfs를 사용하지 않고 푸니까 시간초과없이 문제가 정답처리 되었습니다.

 

 

이후 시간 초과가 났던 이유를 분석해봤는데, 제 생각은 아래와 같아요.



치킨집을 고르는 최대 개수 : 13C6

집의 최대 개수 : 100

13C6 * 100 = 171,600 (많이 여유로움)

하지만, bfs를 각 집마다 적용했으므로 (50 * 50) = 2500을 최대치로 잡고 더 곱해줘야 하므로

171,600 * 2500 = 629,000,000 

따라서 시간 초과가 난다. 

 

그래서 bfs를 사용하지 않고 abs를 사용해서 바로 거리를 계산하면 이 값이 최대 13이 되므로,

171,600 * 13 = 2,230,800 (여전히 여유로움)

이라서 시간 초과 없이 통과되었다고 판단했어요.

 


제 질문은 아래와 같아요.

  1. bfs를 사용했을 때의 시간 복잡도 계산식에 오류가 없나요? (잘 계산한게 맞나요?)

  2. bfs를 사용하지 않을 때의 시간 복잡도 계산식에도 오류가 없나요? (잘 계산한게 맞나요?)

     

 

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
K케이님의 프로필 이미지
K케이

작성한 질문수

질문하기