16236번 - 아기 상어
이 코드를 실행시키면 0%에서 바로 시간초과가 뜹니다. 사실 배열의 최대공간이 400개라
시간초과염려를 전혀안했고 계산해봤는데 400*(400^2 + 400+400) = 64000000 (6천4백만) 정도? 로 알고 코드를 제출했습니다.
400^2는 BFS함수, 400+400 은 search(), eat() 두개의 함수가 이중for문으로 배열을 탐색하기떄문에 이렇게 계산하고 코드를 짯습니다.
아무튼 여기서 문제가 되길래 105줄에 잇는 search() 함수를 지웠습니다. 어차피 BFS탐색할때 상어의크기보다 더 큰 물고기들은 알아서 필터링되기떄문에
search 함수를 없애고 코드를 돌리니까 시간초과문제가 해결되고 정답이더군요. 수행시간은 4ms 이었습니다.
왜 이럴까 생각을 해봤는데 제 계산에 뭔가 착오가있는것같아 다른분들의 조언을 들어보고싶어 이렇게 질문을 올립니다!
이거 답이 뭔가요 안 풀어봐서 모르겠는데
0 이 뜹니당
저 케이스 넣고 돌려보세요 안 끝날걸요
댓글을 작성하려면 로그인해야 합니다.
apdh25 4년 전
이 코드를 실행시키면 0%에서 바로 시간초과가 뜹니다. 사실 배열의 최대공간이 400개라
시간초과염려를 전혀안했고 계산해봤는데 400*(400^2 + 400+400) = 64000000 (6천4백만) 정도? 로 알고 코드를 제출했습니다.
400^2는 BFS함수, 400+400 은 search(), eat() 두개의 함수가 이중for문으로 배열을 탐색하기떄문에 이렇게 계산하고 코드를 짯습니다.
아무튼 여기서 문제가 되길래 105줄에 잇는 search() 함수를 지웠습니다. 어차피 BFS탐색할때 상어의크기보다 더 큰 물고기들은 알아서 필터링되기떄문에
search 함수를 없애고 코드를 돌리니까 시간초과문제가 해결되고 정답이더군요. 수행시간은 4ms 이었습니다.
왜 이럴까 생각을 해봤는데 제 계산에 뭔가 착오가있는것같아 다른분들의 조언을 들어보고싶어 이렇게 질문을 올립니다!