알고리즘/C
프로그래머스 멀리 뛰기 C언어
지휘리릭
2019. 9. 21. 13:56
순열 조합 관한 문제라고 생각해서 엄청 고민 많이 했는데 사실은 그냥 피보나치였다.
물론 순열 조합으로 푼 사람도 있으나... 넘 어려움
그렇지만 그냥 피보나치로 풀면 안되고 num[i] 값을 넣을 때마다 1234567로 계속 나눠줘야한다.
맨 마지막 answer 에서 나누면 틀림 !!
느낀 점 : 도저히 알고리즘을 구상하는게 힘들다면 모든 경우의 수를 나열해보고 수열이나 규칙이 있는지 확인해볼 것
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
long long solution(int n) {
long long answer = 0;
long long num[n];
num[0] = 1;
num[1] = 1;
for(int i =2; i<= n; i++){
num[i] = (num[i-1] + num[i-2])%1234567;
}
answer = num[n];
return answer;
}
|