문제
정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다.
- 1+1+1+1
- 1+1+2
- 1+2+1
- 2+1+1
- 2+2
- 1+3
- 3+1
정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다.
출력
각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.
예제 입력 1
3
4
7
10
예제 출력 1
7
44
274
const [n, ...input] = require('fs').readFileSync('dev/stdin').toString().trim().split('\n').map(Number);
function solution(n) {
if(n===1) return 1;
if(n===2) return 2;
if(n===3) return 4;
return solution(n-1) + solution(n-2) + solution(n-3);
}
input.forEach((item) => console.log(solution(item)))
* 이 번 문제는 함수 + 조금이나마 짧게 코드를 작성
1. input 값을 Number로 map 생성하고 0번 index의 value는 필요 없으므로 n으로 설정 후 나머지는 스프레드 연산자 사용
2. 1,2,3은 기본 셋팅 되어야하므로 if문을 통해 return
3. 나머지 input값은 순차적으로 바깥 forEach를 통해 return solution(n-1) ~~~에 삽입하여 return
4. 3개의 input값에 대해 순차적으로 consoloe.log()
'알고리즘 풀이' 카테고리의 다른 글
[JAVASCRIPT] 백준 1475번 문제 풀이 (0) | 2022.12.10 |
---|---|
[JAVASCRIPT] 백준 10610번 문제 풀이 (0) | 2022.11.23 |
[JAVASCRIPT] 백준 17202번 문제 풀이 (0) | 2022.09.28 |
[JAVASCRIPT] 백준 4150번 문제 풀이 (0) | 2022.09.27 |
[JAVASCRIPT] 백준 4673번 문제 풀이 (1) | 2022.09.26 |