[Lv2] 멀리 뛰기

걸음걸음·2023년 2월 20일
0

Test

목록 보기
2/29

문제링크

  • 한 번에 1칸 또는 2칸 이동
  • 멀리 뛰기로 도달해야 하는 거리 n
  • return 끝에 도달하는 방법의 수 % 1234567

n이 1일 경우의 수 1
n이 2일 경우의 수 2
n이 3일 경우의 수 3
n이 4일 경우의 수 5
피보나치 = [0, 1, 1, 2, 3, 5, ... ]
return 해야 하는 값 = 피보나치[idx + 1] % 1234567

function solution(n) {
    const fib = [0,1]
    for(let i = 2; i<=n+1; i++){
        fib[i] = fib[i-1] + fib[i-2]
    }
    return fib[n+1]%1234567
}
  • 7번 문항부터 오류 발생
    정수 오버플로우 문제(추측)
    정수형 변수의 오버플로우는 정수값이 증가하면서, 허용된 가장 큰 값보다 더 커져서 실제 저장되는 값은 아주 작은 수 이거나, 음수인 경우를 의미.

최종 통과 답안

값에 bigint 속성을 추가
** bigint : 길이의 제약 없이 정수를 다룰 수 있게 해주는 숫자형

function solution(n) {
    const fib = [0n,1n]
    for(let i = 2; i<=n+1; i++){
        fib[i] = fib[i-1] + fib[i-2]
    }
    return fib[n+1]%1234567n
}

*** 정수 오버플로우 / bigint 속성에 대해 더 알아보기

profile
꾸준히 나아가는 개발자입니다.

0개의 댓글