백준 문제풀이 9095 1,2,3 더하기
boj 9095 : 1, 2, 3 더하기
문제 주소: https://www.acmicpc.net/problem/9095
난이도: silver 3
1.문제설명
- 정수 n이 주어졌을 때, n을 1,2,3 의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오
- 테스트케이스의 개수가 주어지고
- 그만큼 n이 입력된다.
2.문제해결 아이디어.
- n은 양수이며 11보다 작다고 한다.
- 또한 이는 최적화 문제가 아니다
- memoization을 활용하는 문제다.
- 따라서 하나의 cache테이블을 만들고 활용하도록 하자
3.문제접근법
- n = [1, 10] 이다 따라서 11칸을 가진 리스트를 만든다. (0번째 인덱스는 사용안함)
- 캐시테이블을 초기화하자
- cache[i] 는 i를 1,2,3의 합으로 나타내는 경우의 수이다.
cache = [1e9] * 11
cache[1] = 1
cache[2] = 2
cache[3] = 4
- 4부터 10까지 아래 점화식을 점화한다.
cache[i] = (cache[i-1]) + (cache[i-2]) + (cache[i-3])
- i를 만드는 방법은
- i에서 1을 뺀 수를 만들고, 단순히 1만 더해주면 되기 때문에 cache[i-1]가지 경우
- i에서 2를 뺀 수를 만들고, 단순히 2만 더해주면 되기 때문에 cache[i-2]가지 경우
- i에서 3을 뺀 수를 만들고, 단순히 3만 더해주면 되기 때문에 cache[i-3]가지 경우
4.특별히 참고할 사항
- dp를 이용한 최적화 문제가 아니라
- memoization을 이용하는 문제였다.
5.코드구현
T = int(input())
question = []
for i in range(T):
question.append(int(input()))
cache = [1e9] * 11
cache[1] = 1
cache[2] = 2
cache[3] = 4
for i in range(4,11):
cache[i] = (cache[i-1]) + (cache[i-2]) + (cache[i-3])
for q in question:
print(cache[q])
Author And Source
이 문제에 관하여(백준 문제풀이 9095 1,2,3 더하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@qlql323/백준-문제풀이-9095-123-더하기
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
문제 주소: https://www.acmicpc.net/problem/9095
난이도: silver 3
cache = [1e9] * 11
cache[1] = 1
cache[2] = 2
cache[3] = 4
cache[i] = (cache[i-1]) + (cache[i-2]) + (cache[i-3])
- i에서 1을 뺀 수를 만들고, 단순히 1만 더해주면 되기 때문에 cache[i-1]가지 경우
- i에서 2를 뺀 수를 만들고, 단순히 2만 더해주면 되기 때문에 cache[i-2]가지 경우
- i에서 3을 뺀 수를 만들고, 단순히 3만 더해주면 되기 때문에 cache[i-3]가지 경우
T = int(input())
question = []
for i in range(T):
question.append(int(input()))
cache = [1e9] * 11
cache[1] = 1
cache[2] = 2
cache[3] = 4
for i in range(4,11):
cache[i] = (cache[i-1]) + (cache[i-2]) + (cache[i-3])
for q in question:
print(cache[q])
Author And Source
이 문제에 관하여(백준 문제풀이 9095 1,2,3 더하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@qlql323/백준-문제풀이-9095-123-더하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)