• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

Time Limit Exceeded

22.08.05 17:18 작성 조회수 197

0

해당 문제를 풀다 이해는 완벽히 했지만 오류가 나 올려주신 소스코드를 복사해 넣어도 60점만 나오는데 왜이런건가요?

 

import sys

dx=[-1, 0, 1, 0]
dy=[0, 1, 0, -1]
sys.setrecursionlimit(10**6)
def DFS(x, y, h):
    ch[x][y]=1
    for i in range(4):
        xx=x+dx[i]
        yy=y+dy[i]
        if 0<=xx<n and 0<=yy<n and ch[xx][yy]==0 and board[xx][yy]>h:
            DFS(xx, yy, h)

if __name__=="__main__":
    n = int(input())
    cnt = 0
    res = 0
    board=[list(map(int, input().split())) for _ in range(n)]
    for h in range(100):
        ch=[[0]*n for _ in range(n)]
        cnt=0
        for i in range(n):
            for j in range(n):
                if ch[i][j]==0 and board[i][j]>h:
                    cnt+=1
                    DFS(i, j, h)
        res=max(res, cnt)
        if cnt==0:
            break
    print(res)

 

 

    

답변 1

답변을 작성해보세요.

1

안녕하세요^^

제가 드린 코드가 60점 나오는게 혹시 시간초과라면 채점하는 컴퓨터에 따라 그럴 수 있습니다.