작성
·
56
0
선생님과 다른느낌으로 코드를 작성한것 같은데, 검사기는 오류없이 잘 돌아갔어요 이렇게 작성하면 틀린걸까요??
import sys
sys.stdin=open("input.txt","rt")
input=sys.stdin.readline
n,m=map(int,input().split())
a=[[0]*(n+1) for _ in range(n+1)]
for i in range(m):
x,y=map(int,input().split())
a[x][y]=1
s=0
b=[0]*(n+1)
b[1]=1
def DFS(L):
global s
if L==n:
s=s+1
return
for j in range(1,n+1):
if a[L][j]==1 and b[j]==0:
b[j]=1
DFS(j)
b[j]=0
DFS(1)
print(s)
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
유재휘님의 질문에 대한 답변으로, 비슷한 문제 해결 방식을 찾았습니다.
섹션 7에서 다루는 최대점수 구하기(DFS) 문제는 알고리즘을 이해하고 적용하는 능력을 평가하기 위해 여러 가지 방식으로 풀 수 있습니다. 제공해주신 코드를 검토한 결과, 그래프 탐색(DFS)를 이용하여 문제를 해결하려는 접근 방식을 취하고 있습니다. 이는 문제를 해결하는 유효한 접근 방식 중 하나입니다.
비슷하게 DFS를 활용하여 문제를 해결하는 방법에 대한 질문이 있었는데, 아래 질문에서도 DFS를 이용한 탐색 방식을 사용했습니다. 이러한 경로 탐색 문제들은 그래프를 사용해 여러 시작점에서 목적 지점까지의 경로를 찾는 것을 목표로 합니다. 여기서 중요한 것은 재귀 호출을 활용해 가능한 모든 경로를 탐색하면서, 해당 문제의 조건에 맞는 해결책을 찾아내는 것입니다.
아래 링크에서는 DFS를 사용하는 방식에 대해 논의했습니다. 비록 정확히 같은 문제는 아니지만, DFS를 사용하는 핵심 개념과 탐색 방법을 이해하는 데 도움이 될 것입니다.
- 이런 식으로 짜도 괜찮을까요? - 여기에서는 DFS를 활용한 다른 문제 해결 방식을 논의하며, 이 과정에서 글로벌 변수를 사용하여 방문 상태를 추적하는 방법을 설명하고 있습니다. 이는 유재휘님의 코드에서 사용한 방식과 비슷합니다.
제공된 코드는 부분적으로 문제 조건을 충족하며, 완전히 틀렸다고 볼 수 없습니다. 각 문제에 대한 여러 가지 해결 방법이 있을 수 있으며, 중요한 것은 알고리즘의 원리를 이해하고 적절히 적용하는 것입니다. 유재휘님의 경우에도 코드가 문제의 요구 사항을 만족시키고, 예상된 결과를 도출한다면 이는 훌륭한 해결책입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.