일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- spotify
- SECS/GEM
- Spotify Api
- regression
- 백준
- 프로그래머스
- Baekjoon
- CS
- python
- 자바
- java
- 회원가입
- Gem
- SWEA
- Spring JPA
- C++
- 파이썬
- Computer Science
- programmers
- Spring
- linux
- spring boot
- SECS
- SW Expert Academy
- MYSQL
- 스포티파이
- c
- modern c++
- SECS-II
- 회귀
Archives
- Today
- Total
비버놀로지
[Programmers 프로그래머스] 12945 피보나치 수 (JAVA) 본문
728x90
https://programmers.co.kr/learn/courses/30/lessons/12945
문제 설명
피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다.
예를들어
- F(2) = F(0) + F(1) = 0 + 1 = 1
- F(3) = F(1) + F(2) = 1 + 1 = 2
- F(4) = F(2) + F(3) = 1 + 2 = 3
- F(5) = F(3) + F(4) = 2 + 3 = 5
와 같이 이어집니다.
2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요.
제한 사항
* n은 1이상, 100000이하인 자연수입니다.
입출력 예
n | return |
3 | 2 |
5 | 5 |
입출력 예 설명
피보나치수는 0번째부터 0, 1, 1, 2, 3, 5, ... 와 같이 이어집니다.
피보나치수열을 구현하기 위해 for문을 활용해서 문제를 해결했습니다.
먼저 1과 2일때는 1로 해주고, n도 1이나 2일 경우 1로 리턴하게 합니다.
만약에 아니라면 for문을 활용해서 n까지 돌게 하고, 돌면서 answer과 num1, num2를 계속 바꿔주면서 결과값을 찾아내게 됩니다.
class Solution {
public int solution(int n) {
int answer = 0;
int num1 = 1;
int num2 = 1;
if (n == 1 || n == 2)
return 1;
else {
for (int i = 3; i <= n; i++) {
answer = (num1 + num2) % 1234567;
num1 = num2;
num2 = answer;
}
}
return answer;
}
}
728x90
'ALGORITM > JAVA' 카테고리의 다른 글
[Programmers 프로그래머스] 17683 [3차] 방금그곡 (JAVA) (0) | 2021.07.12 |
---|---|
[Programmers 프로그래머스] 17687 n진수 게임 (JAVA) (0) | 2021.07.05 |
[Programmers 프로그래머스] 12924 숫자의 표현 (JAVA) (0) | 2021.07.05 |
[Programmers 프로그래머스] 42895 N으로 표현 (JAVA) (0) | 2021.07.02 |
[Programmers 프로그래머스] 43105 정수 삼각형 (JAVA) (0) | 2021.07.02 |
Comments