본문 바로가기

코딩테스트 연습(with java)/프로그래머스

프로그래머스<파보나치 수>

 

if와 while문으로 문제설명

 

피보나치 수는 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은 2 이상 100,000 이하인 자연수입니다.

 

 

내가 쓴 코드

 

처음에는 정석적으로 ArrayList를 사용하여 코드를 작성하였다. 실행결과는 항상 정답인데 계속 오류가 나서 실행시간이 너무 길어서 그런가 싶어서 if,while문으로 작성하였다. 그런데도 계속 결과는 정답이지만 오류가 나서 아는형에게 물어보았지만 아마 프로그램상 오류이지 않을까 라는 결론이 나왔다.