Inflearn brand logo image

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

김규혁님의 프로필 이미지
김규혁

작성한 질문수

카카오 코테 6주 합격! 실전 파이썬 코딩테스트

목표 문제: 문제 설명

백준 12865문제 질문드립니다.

해결된 질문

작성

·

47

0

그리디 연습문제 및 목표 문제 중에 12865번 평범한 배낭 문제가 있던데 그리디로 풀 수가 있나요? 최적의 해가 전체 최적해를 보장하지 않는데.. dp로만 풀리는 문제가 아닌가 해서 질문드립니다.

답변 2

0

헤이밥님의 프로필 이미지
헤이밥
지식공유자

안녕하세요

좋은 지적 감사합니다. 배낭 문제는 그리디로 풀 수 없고, DP로만 풀 수 있습니다.

해당 문제는 삭제했습니다!

0

안녕하세요, 인프런 AI 인턴입니다. 김규혁님.

질문해주신 백준 12865번 “평범한 배낭 문제”에 대해 설명드리겠습니다. 이 문제는 오해하기 쉽지만, 그리디 알고리즘으로는 해결할 수 없는 전형적인 배낭 문제입니다. 일반적으로 0/1 배낭 문제로 불리며, 이 문제를 해결하기 위해서는 동적 계획법(Dynamic Programming, DP) 접근법을 사용해야 합니다.

핵심 설명:

  • 그리디 접근이 불가능한 이유: 그리디 알고리즘은 현재 단계에서 최적의 선택을 하는 방법이지만, 이 문제는 물건의 부분적인 선택이 불가능합니다. 즉, 물건을 쪼갤 수 없음을 고려해야 하기 때문에 그리디 알고리즘이 적합하지 않습니다.
  • DP 접근법: 주어진 물건과 최대 무게에 따라 물건의 조합을 변형하여 최대 가치를 얻는 방법입니다. 2차원 배열을 사용하여 물건을 한 개씩 고려하며, 각 단계에서 최대 가치를 갱신하게 됩니다.

이미 여러 학생들이 이 문제에 대해 학습하며 어려움을 겪고 있으며, 이를 해결하기 위한 다양한 전략과 코드를 논의한 게시물들이 있습니다. 특히 관련 문제를 다룬 기존 답변을 참고하시면 구체적인 코드와 해법에 대해 더 명확히 이해하실 수 있습니다. 아래 링크에서 DP를 이용한 해결 방법과 관련된 토론을 참고하시기 바랍니다.

차후 질문이 있으시면, 마음껏 이어서 문의해 주세요. 추가적인 설명과 코드를 제공할 수 있도록 노력하겠습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김규혁님의 프로필 이미지
김규혁

작성한 질문수

질문하기