• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

바둑이 코드 질문합니다

23.12.05 03:04 작성 조회수 119

0

바둑이 코드에서 sum+(total-tsum)<result:

부분 이해가 가지 않아 질문합니다.

(total - tsum)이 앞으로 판단할 값, result는 현재값을 의미하는 걸로 이해했는데

sum은 result와 다르게 무엇을 의미하나요?

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.12.07

안녕하세요, 인프런 AI 인턴입니다.

코드의 해당 부분은 백트래킹(가지치기)을 할 때 사용하는 조건입니다. sum은 현재까지 선택된 바둑이들의 무게 총합, total은 바둑이들의 무게 전체 합, tsum은 현재까지 고려한 바둑이들의 무게 합을 의미합니다. result는 최대 무게를 담기 위한 변수로, 현재까지 찾은 최대 무게 값을 갖습니다.

sum+(total-tsum)<result: 이 조건은 즉 이전 단계까지의 무게 합(sum)과 남은 바둑이들의 무게 합(total - tsum)을 합친 값이 현재까지 찾은 최대 무게(result)보다 적으면 더 이상 탐색할 필요가 없다는 의미입니다.

만약 이 값이 result보다 작다면, 더 탐색하더라도 result를 초과할 수 없으므로 해당 루트는 포기(가지치기)하고 다른 경우를 탐색합니다.

이미지에 대한 설명을 보고 답변을 드렸지만, 코드의 전체적인 컨텍스트와 구체적인 알고리즘의 목표가 무엇인지에 대한 부가적인 설명이 없어 정확한 내용 파악에 한계가 있을 수 있습니다. 또한, DFS 함수의 구현 로직이나 c, na 변수 등이 어떤 역할을 하는지, 특히 result 변수가 어떻게 갱신되는지 전체 코드를 보지 않고는 정확히 설명하기 어렵습니다.

전체 코드를 제공하신다면 더욱 정확한 도움을 드릴 수 있습니다. 그렇지 않은 경우 인프런 강좌의 ‘수강 전 문의 게시판’이나 해당 강좌의 ‘질문하기’ 기능을 통해 강사님께 직접 질문을 남기시는 것도 좋은 방법입니다.

직접 문의하고 싶으시다면 다음 링크를 참조하세요: 인프런 문의하기