Loading...
2022. 12. 9. 03:55

인공신경망 Perceptron 효과적으로 출력값을 계산하는 방법은?

1. 문제 25341번: 인공 신경망 (acmicpc.net) 25341번: 인공 신경망 첫째 줄에 입력층의 입력 크기 $N$, 은닉층의 인공 신경 개수 $M$, 출력값을 계산해야 하는 횟수 $Q$가 공백으로 구분되어 주어진다. $(1 \leq N,M,Q \leq 2\,000)$ 둘째 줄부터 $M$번째 줄에 걸쳐 은닉층의 www.acmicpc.net 인공 신경망의 가중치와 편향이 주어지고 입력값이 주어질때 출력값을 계산하면 되는 문제 2. 풀이 이게 어렵나? 생각하고 덤볐는데 엄청 어렵네..? 처음에는 그냥 문제에서 주어진대로... 정직하게 구현했다 인공신경망 m줄을 입력받고... 입력되는 가중치 개수, 입력값 순서들, 가중치들, 편향으로 주어지니까 이걸 짤라서 리스트에 나눠 담았지 from sys im..

dictionary와 재귀를 이용한 다이나믹 프로그래밍 기본 테크닉 배우기1

1. 문제 https://www.acmicpc.net/problem/1351 1351번: 무한 수열 첫째 줄에 3개의 정수 N, P, Q가 주어진다. www.acmicpc.net 주어진 수열의 점화식에서 A[N]을 구하는 문제 2. 풀이 처음에 그냥 이게 문제?하면서 점화식 그대로 작성했는데 메모리 초과남.. from sys import stdin n,p,q = map(int,stdin.readline().split()) dp = [0]*(n+1) dp[0] = 1 for i in range(1,n+1): dp[i] = dp[i//p]+dp[i//q] print(dp[n]) n의 최대 범위는 $10^{12}$인데 메모리 제한은 128mb라서 그런 것 같다 근데 dp[n]을 구할려면, dp[n//p]와 d..

2022. 10. 22. 02:39

다이나믹 프로그래밍의 기본이 되는 동전 거스름돈 문제 해법 배우기

1. 문제 사용할 수 있는 동전이 1원,4원,6원이 있다. 거스름돈 8원을 내주기 위해 사용할 수 있는 최소 동전의 개수는? 그리디 방법으로 접근하면, 가장 큰것부터 내주면 최소라고 생각할 수 있으니까, 6원, 1원, 1원 그러나 실제 최적해는 4원, 4원으로 2개이다 그리디 방법이 항상 최적해를 보장해주지 않아서, 다른 방법으로 문제를 해결할 필요가 있다 - 완전 검색(백트래킹 이용가능) - 다이나믹 프로그래밍 2. 재귀 알고리즘 3가지 동전 각각 선택하면 작은 부분문제가 생긴다 1원짜리 동전을 선택하면 >> 7원에 대한 최적해 + 1원 1개 >> 7원에 대한 최적해는 1원,4원,6원으로 다시 나눌 수 있음 4원짜리 동전을 선택하면 >> 4원에 대한 최적해 + 4원 1개 6원짜리 동전을 선택하면 >> ..

다이나믹 프로그래밍 정복기 2 - 연습문제 1로 만들기 -

1. 문제 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 1이상의 정수 x가 주어질때, 1) x가 3으로 나누어 떨어지면 3으로 나눈다 2) x가 2로 나누어 떨어지면 2로 나눈다 3) x에서 1을 뺀다 3가지 연산을 적절히 사용해서 1을 만들고 싶다 연산을 사용한 횟수의 최솟값을 출력한다면? 2. 나의 풀이 다이나믹 프로그래밍 연습문제니까 다이나믹 프로그래밍을 써야겠지 기본이 바텀업이고 반복문 구현이라고 배웠으니까 이에 따라보자 작은 문제부터 구해놓고, 이들을 이용해서 반복문을 구현한다면.. 1이상이니까 dp[0] = 0, 1은 연산을 안해도 1이니까 d..

2022. 9. 1. 02:57

다이나믹 프로그래밍 정복기1 - 기본이론 -

1. 중복되는 연산을 줄이기 현실 세계의 다양한 문제중에 컴퓨터를 활용해도 해결하기 어려운 문제란..? 최적의 해를 구하는데 시간이 매우 많이 필요하거나, 메모리 공간이 매우 많이 필요한 문제 등이 컴퓨터로도 해결하기 어려운 문제 컴퓨터는 연산 속도에 한계가 있고, 메모리 공간을 사용할 수 있는 데이터의 개수도 한정적 그래서 연산속도와 메모리 공간을 최대한 활용할 수 있는 효율적인 알고리즘이 필요하다 2. 다이나믹 프로그래밍 어떤 문제는 메모리 공간을 약간 더 사용하면 연산 속도를 비약적으로 증가시킬 수 있는 방법이 있다 대표적인 방법이 다이나믹 프로그래밍(동적계획법)이다. 다이나믹 프로그래밍으로 해결할 수 있는 대표적인 문제가 피보나치 수열 피보나치 수열은 이전 두 항의 합을 현재의 항으로 설정하는 특..