강의

멘토링

커뮤니티

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

김남균님의 프로필 이미지
김남균

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

[등산경로] 테스트 케이스와 답이 맞지 않습니다.

작성

·

172

0

테스트 케이스 1번부터 5번까지 제가 짠 소스로 해보았는데요,
1번부터 4번까지는 ouput 결과가 제대로 나오는데
테스트 케이스 5번만 답이 다르게 나옵니다.
혹시 제 소스에서 어떤 부분이 잘못 된것인지 알 수 있을까요?
선생님 소스와 비교했을 때 다른점은 출발지점과 도착지점을 구하는 방법만 약간 다를 뿐 다른 소스는 같습니다.

import sys
from collections import deque
sys.stdin = open("input.txt", "rt")
dx = [-1, 0, 1, 0]
dy = [0, 1, 0, -1]

def DFS(x, y):
    global cnt
    if x == end[0] and y == end[1]:
        cnt += 1
    else:
        for idx in range(4):
            xx = x + dx[idx]
            yy = y + dy[idx]
            if 0<=xx<n and 0<=yy<n and visited[xx][yy] == 0:
                if road[xx][yy] > road[x][y]:
                    visited[xx][yy] = 1
                    DFS(xx, yy)
                    visited[xx][yy] = 0


n = int(input())
road = [list(map(int, input().split())) for _ in range(n)]
visited = [[0]*n for _ in range(n)]
max = -2147000000
min = 2147000000
start = [0]*2 #출발지
end = [0]*2 #도착지

for i in range(n):
    for j in range(n):
        if road[i][j] > max:
            max = road[i][j]
            end[0] = i
            end[1] = j
        if road[i][j] < min:
            min = road[i][j]
            start[0] = i
            start[1] = i

cnt = 0
visited[start[0]][start[1]] = 1 #출발지 방문 체크
DFS(start[0], start[1])
print(cnt)











답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

출발지점을 찾는 코드에서 단순 오타입니다.

김남균님의 프로필 이미지
김남균

작성한 질문수

질문하기