9095-123더하기
n<=10 일 떄, 1,2,3에 대해 경우의 수 구하기.
전체 경우의수: 3^10, 왜냐면 3개 중에 1개 선택 x 3개 중에 1개 선택(n번)
sumIt(count, sum, goal)
불가능한 경우
함수 호출 여러번 해도 정답 절대 못찾는 경우
문제의 조건을 지키지 않는 경우
정답을 찾은 경우
다음 경우 호출
1번
sum>goal
2번
sum==goal
3번
1 사용하여 재귀호출
2 사용하여 재귀호출
3 사용하여 재귀호출
int answer;
int cnt;
void sumIt(int sum) {
if(sum > answer) {
return;
}
else if (sum == answer) {
cnt += 1;
return;
}
for(int i = 1; i<=3; i++) {
sumIt(sum + i);
}
}
int main(int argc, const char * argv[]) {
int n;
cin>>n;
for(int i= 0 ;i <n; i++) {
cin>>answer;
cnt = 0;
sumIt(0);
cout<<cnt<<endl;
}
return 0;
}
Last updated
Was this helpful?