게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
N개수 중 M개를 골라 K에 가까운 수대로 나열하기...?
게시물ID : programmer_16588짧은주소 복사하기
작성자 : d_duck
추천 : 0
조회수 : 339회
댓글수 : 12개
등록시간 : 2016/04/07 15:07:34
옵션
  • 외부펌금지
위키 디피아에서 Subset sum problem 이라는 항목을 보다가

오호 이런 것도있구나 하면서 가방 문제도 접해보고 한번 슈도코드라도 짜 보자! 하고 있었습니다.

그런데 어제 오늘로 죙일 펜만 굴리고 구겨서 쓰레기통에 던진 A4만 몇장인지 모르겠네요... 흑흑

물론 스택오버플로우에서도, 구글링에서도 자료를 많이 찾아봤지만 정확한! 해답이 아직 안보이네요.

2가지 예제만 들어드리겠습니다.

A = {1,2,3,4,5,6,7,8} K = 9 일때
[1,8], [2,7], [3,6], [4,5] 4개가 가장 이상적이다.

그래서 [1,2,3], [4,5], [6], [7], [8]은 수의 낭비다 라고 정의하더군요
왜냐하면 Pipe ReArrange라고 말하긴하는데 아직 정확한 정의는 없습니다.

파이프 공장에서 파이프를 자르는데, 최소한의 짜투리만 남기고 잘라야 하는 법칙을 따르는 것이지요.

그렇지만 아래 예제처럼은 당연히 이래야만 합니다.

A = {19,23,41,5,40,36} K = 44 일때
[19,23], [41], [5,36], [40] 가 나오는게 당연하다.

Java를 이용하면서 서브셋을 짜 봤는데 첫번째 예제처럼 [1,2,3] 식으로 돌아가게 뿐 못하겠네요..

참조할 만한 자료를 얻어갈 수 있었으면 하는 바램입니다 여러분! :)
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호