본문 바로가기

코딩테스트

[프로그래머스] 멀리 뛰기

https://school.programmers.co.kr/learn/courses/30/lessons/12914

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


[Lv2, 정답률 68%]

 

- 팩토리얼을 이용해 풀었음

- 수가 너무 커지면 나눗셈 시 OverFlowError가 발생함

- 나눗셈 대신 // 부호 사용해 해결

 

def solution(n):
    answer = 0
    for i in range(n//2+1) :
        # i는 2칸이 들어가는 갯수
        multiple = 1
        for j in range(i+1, n-i+1) :
            multiple *= j
        for k in range(1, n-2*i+1) :
            multiple //= k # overflow를 피하기 위해 나눗셈 대신 // 부호 사용
        answer += multiple

    return int(answer) % 1234567