작성
·
100
·
수정됨
0
안녕하세요, 강사님.
제 코드가 지저분하긴 하지만 (L, days라는 변수 두개 씀) 이 로직도 맞는 걸까요?
테스트 돌려보면 예시들은 success로 나오긴 합니다. 근데 확신이 안 서서요..
참고로 저는 t, p 리스트를 인덱스 0부터 시작했습니다.
import sys
sys.stdin=open("input.txt", "r")
def DFS(L, days, income):
global answer
if L>n:
return
if days>n:
return
if days==n:
if answer<income:
answer=income
else:
DFS(L+1, days+t[days], income+p[days])
DFS(L+1, days+1, income)
n=int(input())
t=list()
p=list()
for _ in range(n):
tt,pp=map(int,input().split())
t.append(tt)
p.append(pp)
answer=-214700000
DFS(0,0,0)
print(answer)
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
제공된 정보 내에서는 프로그래밍 및 알고리즘 문제 해결에 관한 직접적인 답변을 제공하고 있지 않습니다. 그러나 프로그래밍 학습 및 문제 해결 과정에 있어서 자주 발생할 수 있는 일반적인 조언을 드리겠습니다.
코드의 로직이 예상한 대로 동작하는지 확신이 들지 않을 때, 다양한 케이스를 직접 테스트해보는 것이 중요합니다. 제공하신 코드에 따라 이미 기본적인 테스트는 수행하셨다고 하니, 다음 단계로는 더 다양하고 복잡한 테스트 케이스를 직접 구성해보시는 것을 권장합니다.
또한, 코드의 정확성만큼이나 중요한 것이 코드의 가독성입니다. 변수명이나 함수 구조를 좀 더 명확하게 하여 다른 사람이나 미래의 자신이 코드를 보았을 때 이해하기 쉽게 만드는 것이 좋습니다. ‘L’, ‘days’라는 변수명도 명확한 의미를 전달할 수 있도록 조금 더 구체적인 이름으로 변경하는 것을 고려해보세요.
마지막으로, 재귀 함수를 사용하여 문제를 해결하는 경우에는 재귀의 깊이가 깊어질 때 발생할 수 있는 스택 오버플로우를 고려하여 코드를 작성하는 것이 중요합니다. 주어진 문제의 조건에 따라 최악의 경우에도 안전하게 작동할 수 있도록 설계해야 합니다.
질문하신 내용과 직접적으로 관련된 답변을 드리지 못해 죄송합니다. 더 자세한 도움이 필요하시다면, 해당 강의의 Q&A 섹션을 활용하거나 프로그래밍 커뮤니티에서 질문을 통해 도움을 받아보시기 바랍니다.