#include <stdio.h>
#include <stdlib.h>
int seek(int *list, int size, int val){
if (val <= 0)
return 0;
int ret;
int *temp = (int*)calloc(val+1, sizeof(int));
temp[0]=1;
for(int i = 0; i < size; i++){
for(int j = list[i]; j <= val; ++j) temp[j] += temp[j - list[i]];
}
ret = temp[val];
free(temp);
return ret;
}
int main() {
int num[5] = {1, 4, 6, 10, 11};
printf( "%d" , seek(num, 5, 20));
}
이거보다 쉽게 빠르게 짜는놈 있으면 ㅇㅈ 한다.
인라인
malloc + memset 이 더빠른건 안다 더러워서 쓰기싫당
이런 걸로 우쭐거리는 마인드 자체가 문제임. 내가 면접관이라면 이런 건 인정안해줌. 이 케이스에 한해서만 특수한게 눈에 보이거든
못짜서 ㅂㄷㅂㄷ 하는게 보이는군
틀렸는데?
무슨 시대에 안맞게 콜록입니까!
테스트 케이스 대고 뭐가 틀렸는지 지적해보렴
1. 입력 값이 음수인 경우 2. deallocate 위치. 면접문제라고 하지 않았나
문제에 양의정수라고 나와있단다. free 는 괜히 넣은거 인정 나중에 넣었더니
3. 입력값이 리스트 안의 어떤 수보다 작은 경우
양의 정수는 리스트 안의 값이고. 문제 똑바로 읽어라
처리되어있잖아 코드잘봐라
폰으로 복기하고있는데 까다롭게구네
로직에 대한 이의는 없는거냐?
ㅇㅇ 로직은 맞지 이거 유명한 문제 마이너 버전이잖아 잘했다
원 문제는 파이썬으로 쓰라고해서 쓱쓱 적어냈는데 다시 C로 쓸려니 신경쓸게 많구나..
대략 이정도겠네 그럼
문제가 뭐였는데? 밑에 글에 암것도 안뜨던데 지웠냐