백준 14495번 - 피보나치 비스무리한 수열

백준 14495번 바로가기 나의 풀이 f = [1]*(n:=int(input())) if n < 4: print(1) else: for i in range(3,n): f[i] = f[i-1] + f[i-3] print(f[-1]) 고수의 풀이 a=b=c=1 exec('a,b,c=b,c,a+c;'*(int(input())-3)) print(c) 출처 CODE REVIEW 피보나치 수열과 유사하게 코드를 작성하면 되지만, index에 유의해야 한다. 고수의 풀이를 보면 a,b,c=b,c,a+c처럼 작성하는 방법도 참고!

2023-5-24 · 1 min · 48 words · Junha

백준 15624번 - 피보나치 수 7

백준 15624번 바로가기 나의 풀이 f = [0] + [1]*(n:=int(input())) if n > 2: for i in range(2,n+1): f[i] = (f[i-1] + f[i-2])%1000000007 print(f[n]) 고수의 풀이 a,b=0,1 for _ in range(int(input())):a,b=b,(a+b)%(10**9+7) print(a) 출처 CODE REVIEW 피보나치 수열 문제들과 해결 방법 동일. 마지막에만 1000000007로 나눗셈을 하면 메모리 초과 에러가 발생하기 때문에 매번 저장 할 때마다 나누어주어야 한다. (너무 큰 숫자가 저장되는걸 방지) 고수의 풀이에서 a,b=b,a+b처럼 작성하는 방법도 참고!

2023-5-24 · 1 min · 67 words · Junha

백준 1788번 - 피보나치 수의 확장

백준 1788번 바로가기 나의 풀이 n = int(input()) def fibo(n): a,b=0,1 for i in range(n): a,b=b,(a+b)%1000000000 return a if n < 0: print(-1 if (-n)%2==0 else 1) print(fibo(-n)) elif n == 0: print(0) print(0) else: print(1) print(fibo(n)) CODE REVIEW 원래는 n이 입력되면 [0]*(2*n+1)에 해당하는 array를 만들고 짝수 index에는 양수 피보나치 수열을, 홀수 index에는 음수 피보나치 수열을 저장해 문제를 해결하고자 했다. 그런데 n의 값이 1,000,000이므로 recursion error가 발생할 우려도 있고, 규칙성이 생각보다 단순해서 굳이 이 아이디어 대신 규칙성을 활용하였다.

2023-5-24 · 1 min · 78 words · Junha

백준 15489번 - 파스칼 삼각형

백준 15489번 바로가기 나의 풀이 import math r,c,w=map(int,input().split()) sum = 0 for i in range(w): for j in range(i+1): sum += math.comb((r-1+i), j+c-1) print(sum) 고수의 풀이 import math R,C,W=map(int,input().split()) print(sum(math.comb(R+i-1,C+j-1)for i in range(W)for j in range(i+1))) 출처 CODE REVIEW 파스칼의 삼각형의 부분합을 구하는 문제. 범위 지정하는게 은근히 까다로운 문제였다. 고수의 풀이를 보면 파스칼의 각 위치를 일반항 math.comb(R+i-1,C+j-1)으로 구해 범위에 따라 바로 답을 구할 수 있게 했는데, 솔직히 내 풀이랑 거의 유사하다.

2023-5-23 · 1 min · 71 words · Junha

백준 16395번 - 파스칼의 삼각형

백준 16395번 바로가기 나의 풀이 def factorial(n): temp = 1 for i in range(1,n+1): temp *= i return temp n,k=map(int,input().split()) print(int(factorial(n-1)/(factorial(n-k)*factorial(k-1)))) 고수의 풀이 import math S=input() print(math.comb(int(S[:2])-1,int(S[2:])-1)) 출처 CODE REVIEW 파스칼의 삼각형 - 이항계수 내용은 이제 너무 익숙해져서 다른 문제를 풀어봐야겠다. factorial을 구현해서 이항계수의 정의에 따라 구현해도 되구 math 라이브러리의 comb 메소드를 사용해도 된다.

2023-5-23 · 1 min · 54 words · Junha