728x90
반응형
문제
접근방법
1) 완전탐색을 통해 값을 구해보면 피보나치 수열과 같은 결과임을 알 수 있음
코드
import java.util.Map;
import java.util.HashMap;
import java.math.BigDecimal;
class Solution {
public long solution(int n) {
return fibonacciNumbers(n);
}
/**
* 피보나치 수열
* n번째의 피나보치 수열을 계산한다.
* @param n 피보나치 수열을 구할 자연수
* @return long n번째 피보나치 수열
*/
public long fibonacciNumbers(int n) {
Map<Integer, BigDecimal> map = new HashMap<>();
int idx=1;
map.put(idx++, new BigDecimal("1"));
map.put(idx++, new BigDecimal("2"));
while(idx<=n)
map.put(idx++, map.get(idx-2).add(map.get(idx-3)));
return map.get(n).remainder(new BigDecimal("1234567")).longValue();
}
}
결과
주의사항
1) 이중 반복문 사용 시 시간초과가 발생함
728x90
반응형
'코딩테스트' 카테고리의 다른 글
[코테/Java] 프로그래머스 : 뒤에 있는 큰 수 (0) | 2023.08.26 |
---|---|
[코테/JAVA] 프로그래머스 : 모음사전 (0) | 2023.08.14 |
[코테/JAVA] 프로그래머스 : 숫자 변환하기 (0) | 2023.08.09 |
[코테/JAVA] 프로그래머스 : 덧칠하기 (0) | 2023.05.31 |
[코테/JAVA] 연습문제 : 공원 산책 (0) | 2023.05.24 |
댓글