wow1514   8년 전

답은 나오는거 같은데 시간초과 뜨네요.. 정올에서 한 케이스에서 시간초과가 뜨고

백준에서도 50%까지 채점하다가 시간초과가 발생합니다.

시간을 줄일만한 구석이 있으면 지적 해주세요.. 제 코드라그런지

전 어디서 더 줄여야 할지 잘 안보이네요 ㅠㅠ

wow1514   8년 전

첫번째 행과 열, 마지막 행과 열은 무조건 바다이므로 bfs 든 dfs든 탐색에서 제외합니다.

빙산이 나누어져있는지 검사할때 탐색함수를 두번돌면 무조건 빙산이 나누어진것이므로

for문이 끝날때까지 기다리는 것이 아니라 두번째 탐색하려고 진입하는 순간 true를 리턴하고 함수를 종료 시킵니다.

감소시키는 decrease함수도 따로만드는 것이아니라 bfs함수를 돌면서 빙산 주위의 바다개수를 구하여 저장한뒤 모든 탐색이 끝난 후

바다 개수만큼 빙산 높이를 낮춰주었습니다.

여기서 for문을 이용하여 x+1,x-1,y+1,y-1을 탐색하는 것보다 if문을 이용하는게 더 빠릅니다.

이렇게 하니 간신히 시간초과는 면하네요. 대략 500ms ~ 700ms 사이로 나옵니다.

wow1514   8년 전

위의 코드는 시간초과가 안떠도 틀린답이 나오는 코드입니다.

댓글을 작성하려면 로그인해야 합니다.