꼭 C 아니어도 이해만 시켜주면 되요
미리 입력된 데이터 N 개가 있음
데이터 하나는 ( 이름 , 값 ) 이렇게 가져요
값의 합이 특정숫자 ( 실행중에 입력받음) 가 되도록 데이터를 선택하는 '모든 경우' 를 출력하고 싶음
케이스1: 이름1,이름2,이름3
케이스2: 이름2, 이름4
케이스3: 이름5, 이름6
이렇게.....
어떻게 하면 좋을까요
미리 입력된 데이터 N 개가 있음
데이터 하나는 ( 이름 , 값 ) 이렇게 가져요
값의 합이 특정숫자 ( 실행중에 입력받음) 가 되도록 데이터를 선택하는 '모든 경우' 를 출력하고 싶음
케이스1: 이름1,이름2,이름3
케이스2: 이름2, 이름4
케이스3: 이름5, 이름6
이렇게.....
어떻게 하면 좋을까요
이해안됨
알고리즘 아니냐
브루트 포스로 풀거라
브루트 포스가 뭔진알겠는데 어떻게 써먹어야될지모르겠어
문제를 나눠서 생각하거라
max C param 경우의수를 만족하는 인덱스들을 리턴해주는 함수를 만든다고 생각해보거라
어떻게 나눠
아니 그걸 할줄알았으면 여기에 안물어봤지
되요->돼요 (되어 = 돼임) [리듬 맞춤법 봇♬]
int ** array = getCombination(max, param);
for(i=0; i<param; i++) check(array);
이제 가서 겟콤비네이션 만드셈
리커시브 펑션으로 만들어보거라
저 인간 말고 딴형님구함
ㅋㅋㅋㅋㅋ
go로 짜주려 했는데 곧 외출해야하네
정렬한다음에 가장큰 값 뺀거랑 안 뺀거에서 두번째로 큰값 뺀거랑 안뺀거 이런식으로 재귀로 하면 되겠네
설명이 무슨말인지 모르겠는거 나만 그러냐
이름5는 왜 집어넣은겨
가진데이터 : (딸기,1) (바나나,1) (귤,2) 입력받은 수 : 2 (값의합이 될 수) ㅡ결과ㅡ (딸기,바나나) , (귤) 이렇게 나오게 하고싶단 얘기
근데 데이터가 100개 이상이어도 작동가능하게 짜고싶음 막짜지말구
아하 예시가 이해가 안됬었음
내 빠가같은 머리로는 생각 나는게 1부터 n 까지의 숫자를 순차적으로 더해봐서 입력받은 수 에 일치 하면 리스트에 집어 넣고 다시 더해보는 거임. 다시 더해서 값을 구했는데 그 값이 리스트에 존재하면 다음으로 넘어가고 이런식?
1부터 n 이 아니라 배열 인덱스 0부터 length 까지의 값들의 합이면 되겠네 이건 구현하기 쉬울듯
다시말해서 배열에 존재하는 값들을 모든 경우의 수 로 더해보는 거는 어렵지 않을 거 같음
모든 경우를 다 확인하면 시간이 좆된다. 정렬로 다시 생각해 봐라.
ㅇㅇ//됬->됐 (되어 = 돼임) [리듬 맞춤법 봇♬]
응 근데... 나는 무조건 더했을때 값의 합만 일치하면 되거든 그러니까 그게 1개의 값이든 2개의 합이든 3개의 합이든 상관없어... 그래서문제
그니까 큰거부터하셈
큰거부터 하나씩 빼보고 음수면 탐색중단
순서는 어떻게 저장함 그게 제일문제임