## 과제_1 : 피보나치 수 (재귀) 목표 : 재귀 함수로 피보나치 수열을 구현하라 요구사항 - 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수다 - `int solution(int n)` 함수를 완성해서 피보나치 n번째 수를 반환하도록 한다 - 재귀로 구현한다 ## 과제_2 : 피보나치 수 (반복문) 목표 : 반복문을 사용해서 피보나치 수열을 구현하라 요구사항 : 과제_1에서 작성한 코드를 반복문을 사용해서 구현한다 > https://school.programmers.co.kr/learn/courses/30/lessons/12945 ## 과제_3 : 콜라 문제 (재귀) 목표 : 재귀 함수로 콜라 문제를 풀어라 요구사항 : 프로그래머스에서 다음 문제를 풀어라. [https://school.programmers.co.kr/learn/courses/30/lessons/132267](https://school.programmers.co.kr/learn/courses/30/lessons/132267) ## 과제_4 : 콜라 문제 (반복문) 목표 : 반복문을 사용해서 콜라 문제를 풀어라 요구사항 : 과제_3에서 작성한 코드를 반복문을 사용해서 구현한다. [https://school.programmers.co.kr/learn/courses/30/lessons/132267](https://school.programmers.co.kr/learn/courses/30/lessons/132267) --- ## 과제_1 : 피보나치 수 (재귀) 모범답안 ```java class Solution { public int solution(int n) { if (n <= 2) return 1; return (solution(n-1) + solution(n-2)) % 1234567; } } ``` ## 과제_2 : 피보나치 수 (반복문) 모범답안 ```java class Solution { public int solution(int n) { if (n <= 2) return 1; int answer = 0; int a = 1; int b = 1; for (int i = 3; i <= n; i++) { answer = (a + b) % 1234567; a = b; b = answer; } return answer; } } ``` ## 과제_3 : 콜라 문제 (재귀) 모범답안 ```java class Solution { public int solution(int a, int b, int n) { if (n < a) { return 0; } return (n / a) * b + solution(a, b, (n / a * b) + (n % a)); } } ``` ## 과제_4 : 콜라 문제 (반복문) 모범답안 ```java class Solution { public int solution(int a, int b, int n) { int answer = 0; while (true) { if (n < a) { break; } answer += (n / a) * b; n = ((n / a * b) + (n % a)); } return answer; } } ```