728x90
반응형
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
#define NS 21
int member[NS];
int N, B;
int ret;
int Min = 0x7fffffff;
struct Seo {
Seo() {
int T;
scanf("%d", &T);
for (int t = 1; t <= T; t++) {
init();
scanf("%d %d", &N, &B);
for (int Ni = 0; Ni < N; Ni++) {
scanf("%d", &member[Ni]);
}
dfs(0, 0);
ret = Min;
printf("#%d %d\n", t, ret);
}
}
void init() {
ret = 0;
Min = 0x7fffffff;
memset(member, 0, sizeof(member));
}
void dfs(int sum, int idx) {
//if (Min < sum)return;
if (idx == N) {
if (sum >= B) {
if (Min > (sum - B))Min = (sum - B);
}
return;
}
dfs(sum + member[idx], idx + 1);
dfs(sum, idx + 1);
}
}Seo;
int main(void) {
return 0;
}
이문제의 포인트는 재귀로 넣고 빼고를 구현 할 수 있는지 입니다.
소스를 직접보면 어처구니 없이 너무나 쉬운데 이정도는 기본으로 할줄 알아야 왠만한 문제는
풀수 있습니다. 힘내세요.
포인트는 점원들의 키의 합을 sum에 저장했는데 이게 입력으로 주어진 B이상인것중에
sum - B 의 최소값을 뽑아내는 문제라고 생각하면 됩니다.
이렇게 포인트를 나눠서 구현을 해야지 쉽게 구현이 가능해 합니다. 파이팅!!!
728x90
반응형
'알고리즘 모음집 > 알고리즘 (Algorithm)' 카테고리의 다른 글
1258 행렬찾기 (0) | 2020.02.27 |
---|---|
1225 암호 생성기 (0) | 2020.02.27 |
[모의 SW 역량테스트] 원자 소멸 시뮬레이션 (0) | 2019.12.20 |
[모의 SW 역량테스트] 무선 충전 (0) | 2019.12.07 |
[모의 SW 역량테스트] 홈 방범 서비스 (0) | 2019.12.01 |
댓글