반응형
www.codeup.kr/problem.php?id=3704
문제 설명 내 문제집에 추가
n개의 계단이 있다.
어떤 사람이 계단을 오르려 하는데 이 사람은 계단을 한번에 1계단 2계단 또는 3계단씩 오를 수 있다.
이 사람이 계단을 오를수 있는 경우의 수를 1000으로 나눈 나머지를 구하여라
입력
계단의 수 n이 입력된다. ( 1 <= n <= 100,000 )
출력
계단을 오를 수 있는 가지수에 1000으로 나눈 나머지를 출력한다.
입력 예시 예시 복사
5
출력 예시
13
#include <iostream>
using namespace std;
int memoz[100001];
int recv(int n)
{
if (memoz[n])
return (memoz[n]);
if (n == 1 || n == 2)
return (n);
if (n == 3)
return (4);
memoz[n]= recv(n - 3) + recv(n - 2) + recv(n - 1);
return memoz[n];
}
int main(void)
{
int n;
cin >> n;
int ret = recv(n);
cout << ret % 1000;
}
이렇게 풀면
- 총 13개 중 6번째 테스트 케이스 -
점수 = 38 / 100 입력: 50
정답
642 -----------------
출력 결과
778 =================
위의 케이스에서 틀림
#include <iostream>
using namespace std;
int memoz[100001];
int recv(int n)
{
if (memoz[n])
return (memoz[n]);
if (n == 1 || n == 2)
return (n);
if (n == 3)
return (4);
memoz[n]= recv(n - 3) %1000 + recv(n - 2)%1000 + recv(n - 1)%1000;
return memoz[n];
}
int main(void)
{
int n;
cin >> n;
int ret = recv(n);
cout << ret % 1000;
}
%1000 을 각각 해주니까 잘 나온다.
반응형
'C언어' 카테고리의 다른 글
백준 1932 정수삼각형 : 역으로 올라가기 (0) | 2021.02.08 |
---|---|
코드업 4424 연속부분최대곱 (0) | 2021.02.06 |
백준 11659번 구간합 구하기 4 : 일차원 배열로 미리 저장하기 (0) | 2021.02.02 |
vscode 한번에 단어 바꾸기 (0) | 2021.01.28 |
1965 상자넣기 : 가장 길게 커지는 수 랑 같은 풀이임 (0) | 2021.01.25 |
백준 15665번 : N 과 M 11번 prinarr != arr[i] (0) | 2021.01.24 |
백준 1912 연속합 문제 *max_element(d + 1, d + n + 1); 사용 (0) | 2021.01.23 |
백준 11726 2*n 타일링 ( 시간 지나고 또 품) (0) | 2021.01.23 |