1,2,3을 이용해서 합이
1부터 10인 수식을 찾는다.
각 숫자에서의 수식의 갯수를 함수에 저장한다.
-여기서 이 수식의 갯수를 찾아내는 방법은?
-원하는 숫자와 같은 숫자가 될 때까지 1,2,3을 더해야 한다.
-하지만 2가지 수를 더하는 경우, 3가지 수를 더하는 경우, 4가지 수를 더하는 경우...등이 있다.
-반복문을 이용해서는 각각의 경우 밖에 찾을 수 밖에 없다.
-반복문을 추가할 수 있는가?
-총 10까지의 수만 경우로 들어가기 때문에 일일히 2가지 경우로의 수 ...10가지 경우로의 수를 반복문으로 나타낼 수 있다.
-이 과정을 좀 더 간단하게 만들 수 있는가?
-재귀 함수?
재귀함수로 나타낸다면
기본 형
for(int i=1;i<4;i++)
if(goal==i)
count++;
추가는 반복문의 갯수와 goal이 갖는 변수의 갯수 그리고 반환해야하는 것은 count값
반복문을 추가하는 과정은 할 수 있다고 치자 근데 goal에 변수를 추가하는건?
모르겠다...힝
<질문>
9095번 문제를 풀면서 단순 반복을 통해서 정답을 구했습니다.
(쓸대없는말) 추후에 검색을 통해서 f(n) = f(n-1)+f(n-2)+f(n-3)이라는 수식을 통해서 간단하게 해결한다는 것을 봤습고 이 수식이 수학적으로 문제가 없다는 것은 압니다..만은 이 문제를 보고 (파칭~!) 이건 순열과 조합 문제로군! 이 경우에는 (파칭~!2) 수학적 증명을 생각해봤을 때 이 수식을 사용하면 간단하겠어!라고 생각할 수 없는 저는 단순 반복을 선택했습니다...(쓸대없는 말 끝)
그래서 제가 푼 방식은 숫자가 4 이상일 경우 반드시 2가지 이상의 숫자를 더해야만 조합될 수 있고
n의 수는 최대 n개의 숫자를 사용하니 (1+1+1+1+1...)
그 모든 n개의 숫자를 사용하는 경우를 전부 적용했습니다.
<그래서 질문은 ★> 제가 사용한 방법을 재귀함수나 다른 방법을 사용해서 좀 더 간략하게 표현할 수 있을까요?
제 코드처럼 반복반복반복하는건 힘드니까. ( 솔직히 11이하의 숫자여서 이렇게 했지... 아니였으면...)
kjsd007 4년 전
9095번 백준 질문
<혼잣 말>
1,2,3을 이용해서 합이 1부터 10인 수식을 찾는다. 각 숫자에서의 수식의 갯수를 함수에 저장한다. -여기서 이 수식의 갯수를 찾아내는 방법은? -원하는 숫자와 같은 숫자가 될 때까지 1,2,3을 더해야 한다. -하지만 2가지 수를 더하는 경우, 3가지 수를 더하는 경우, 4가지 수를 더하는 경우...등이 있다. -반복문을 이용해서는 각각의 경우 밖에 찾을 수 밖에 없다. -반복문을 추가할 수 있는가? -총 10까지의 수만 경우로 들어가기 때문에 일일히 2가지 경우로의 수 ...10가지 경우로의 수를 반복문으로 나타낼 수 있다. -이 과정을 좀 더 간단하게 만들 수 있는가? -재귀 함수? 재귀함수로 나타낸다면 기본 형 for(int i=1;i<4;i++) if(goal==i) count++; 추가는 반복문의 갯수와 goal이 갖는 변수의 갯수 그리고 반환해야하는 것은 count값 반복문을 추가하는 과정은 할 수 있다고 치자 근데 goal에 변수를 추가하는건? 모르겠다...힝
<질문>
9095번 문제를 풀면서 단순 반복을 통해서 정답을 구했습니다.
(쓸대없는말) 추후에 검색을 통해서 f(n) = f(n-1)+f(n-2)+f(n-3)이라는 수식을 통해서 간단하게 해결한다는 것을 봤습고 이 수식이 수학적으로 문제가 없다는 것은 압니다..만은 이 문제를 보고 (파칭~!) 이건 순열과 조합 문제로군! 이 경우에는 (파칭~!2) 수학적 증명을 생각해봤을 때 이 수식을 사용하면 간단하겠어!라고 생각할 수 없는 저는 단순 반복을 선택했습니다...(쓸대없는 말 끝)
그래서 제가 푼 방식은 숫자가 4 이상일 경우 반드시 2가지 이상의 숫자를 더해야만 조합될 수 있고
n의 수는 최대 n개의 숫자를 사용하니 (1+1+1+1+1...)
그 모든 n개의 숫자를 사용하는 경우를 전부 적용했습니다.
<그래서 질문은 ★> 제가 사용한 방법을 재귀함수나 다른 방법을 사용해서 좀 더 간략하게 표현할 수 있을까요?
제 코드처럼 반복반복반복하는건 힘드니까. ( 솔직히 11이하의 숫자여서 이렇게 했지... 아니였으면...)
궁금합니다! 다른 표현이 있을까요? 더 간단한!