AMUSEMENTPARK 수행 중...RLE(None Zero Return Code) 런타임 오류는 왜 나는건지요

  • flare99
    flare99

    아래와 같고 혹시 몰라서 sys.exit(0)도 불러줘봤지만.. 이유를 모르겠네요. 이것 말고 다른 문제도 계속 RLE만 납니다. 혹시 몰라서 test case를 랜덤하게 생성도 해서 계속 돌려봐도 None Zero Return code가 왜 나는지 모르겠습니다...

    def find_next(matrix, cur_idx):
    S = [-1, -1]
    for i in range(N):
    for j in range(M):
    if matrix[i][j] == cur_idx:
    S = [i, j]
    return S

    def solve(N, M, matrix, start_S, s_idx):

    can_see = 0
    can_see_list = []
    cur_idx = 1
    cur = [0,0]
    S = start_S[:]

    #print cur, S
    while True:
    #대각선인 경우
    cant_see = False
    if abs(S[0] - cur[0]) == abs(S[1] - cur[1]):
    for i in range(1, abs(S[0] - cur[0])):
    if S[1] > cur[1]:
    tom = i
    else:
    tom = -i

    if S[0] > cur[0]:
                    ton = i
                else:
                    ton = -i
                if matrix[cur[0] + ton][cur[1] +tom] > 0:
                    cant_see = True
        # 가로 같은 방향
        elif S[0] == cur[0]:
            for i in range(1, abs(S[1] - cur[1])):
                if S[1] > cur[1]:
                    tom = i
                else:
                    tom = -i
                if matrix[cur[0]][cur[1] +tom] > 0:
                    cant_see = True
        # 세로 같은 방향
        elif S[1] == cur[1]:
            for i in range(1, abs(S[0] - cur[0])):
                if S[0] > cur[0]:
                    ton = i
                else:
                    ton = -i
                if matrix[cur[0] + ton][cur[1]] > 0:
                    cant_see = True
        if cant_see == False:
            can_see += 1
            can_see_list.append(cur_idx)
        cur_idx += 1
        s_idx += 1
        cur = find_next(matrix, cur_idx)
        S = find_next(matrix, s_idx)

    #print cur, S, can_see
    if cur[0] == -1 or S[0] == -1:
    break
    print can_see
    for i in can_see_list:
    print i

    f = raw_input().split()
    N = int(f[0])
    M = int(f[1])
    s = int(f[2])

    matrix = []
    for i in range(N):
    matrix.append(raw_input().split())
    for j in range(len(matrix[i])):
    matrix[i][j] = int(matrix[i][j])

    for i in range(N):
    for j in range(M):
    if int(matrix[i][j]) == s:
    S = (i, j)

    solve(N, M, matrix, S, s)


    8년 전
1개의 댓글이 있습니다.
  • flare99
    flare99

    찾았습니다. encoding 문제였네요.

    https://algospot.com/forum/read/2731/ 이전에 이미 논의되었었군요.


    8년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.