본문 바로가기
728x90
반응형

코딩

알고리즘 - Python / 백준 - 1737번 : Pibonacci 1737번: Pibonacci (acmicpc.net) 1737번: Pibonacci 첫째 줄에 P[n]을 출력한다. 값이 매우 커질 수 있으므로 1,000,000,000,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 풀이 점화식이 다음과 같은 Pibonacci 수를 구하는 문제다. 피보나치 수열과 비슷하게 DP로 접근해 풀어 보았다. DP[N][K] 배열에서 N은 P[K-N*파이] 로 정의하였다. 즉 만약 P[10]을 구하고 싶다면 DP[0][10] = DP[10-0*파이] 를 구하면 되는 것이다. 이때 Pibonacci 점화식에 따른 DP 점화식은 DP[N][K] = DP[N+1][K] + DP[N][K-1] 이다. 해석하자면 , 만약 DP[0][10] 의 경우 , P.. 더보기
알고리즘 - Python / 백준 - 9024번 : 두 수의 합 9024번: 두 수의 합 (acmicpc.net) 9024번: 두 수의 합 프로그램은 표준입력으로 입력을 받는다. 프로그램 입력은 t 개의 테스트 케이스로 구성된다. 입력의 첫 번째 줄에 테스트 케이스의 개수를 나타내는 정수 t 가 주어진다. 두 번째 줄부터 두 줄 www.acmicpc.net 풀이 음수와 양수가 섞여있는 배열이 있을 때 , 두 수를 더해서 어떤 수에 가장 가깝게 나오는 경우가 몇 가지 인지 출력하는 문제다. 만약 4를 만들어야 하는데 5가 가장 가까운 수라면 , 더해서 5가 되는 조합의 개수를 출력해야 한다. 모든 구간을 확인해야 하는데 기준점이 있으므로 투 포인터로 해결하였다. 먼저 배열을 오름차순으로 정렬한 후 , 구하고자 하는 값과 비교해 크면 뒤쪽을 한칸 당기고 , 작으면 앞쪽을.. 더보기
[19] Deep Learning - How to use Tensorflow [19] Deep Learning - How to use Tensorflow Tensorflow 안에는 다양한 함수들과 다양한 클래스 , 메소드 들이 존재한다. 이번 글에서는 이러한 Tensorflow의 요소들을 사용하여 사용자가 직접 정의하여 사용할 수 있는 손실 함수 , 모델 , 초기화 , 제한 , 규제 등과 모델의 저장 및 불러오기 방법에 대해서 살펴본다. 관련 코드 및 정리 ref. "Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition" 더보기
알고리즘 - Python / 백준 - 4386번 : 별자리 만들기 4386번: 별자리 만들기 (acmicpc.net) 4386번: 별자리 만들기 도현이는 우주의 신이다. 이제 도현이는 아무렇게나 널브러져 있는 n개의 별들을 이어서 별자리를 하나 만들 것이다. 별자리의 조건은 다음과 같다. 별자리를 이루는 선은 서로 다른 두 별을 일 www.acmicpc.net 풀이 2차원 평면 위에 별들의 좌표가 주어지고 해당 별들을 가지고 그래프를 만들 때 거리 합의 최솟값을 구하는 문제다. 노드와 노드 사이 간선의 가중치가 주어지고 , 최소 거리합을 구하는 문제 이므로 최소 신장 트리 문제라고 생각했다. 최소 신장 트리를 푸는 방법에는 크루스칼 알고리즘 ( Kruskal Algorithm ) 과 프림 알고리즘 ( Prim Algorithm )이 존재한다. 프림 알고리즘이 더 익숙해.. 더보기
알고리즘 - Python / 백준 - 2293번 : 동전 1 2293번: 동전 1 (acmicpc.net) 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 대표적인 DP 문제인 동전 문제다. 동전이 주어지고 , 그 동전들을 가지고 해당 금액을 만들 수 있는 경우의 수를 구하는 문제다. DP 점화식은 DP[I] = DP[I-K] + DP[I] 로 I 금액을 K 금액의 동전으로 만드는 경우를 이야기한다. 만약 1원 2원을 가지고 17원을 만드는 경우는 16원을 만드는 경우에 1원 동전을 사용하는 경우 , 15원을 만드는 경우에 2원 동전을 사용하는 경우 2가지 일 것이.. 더보기
[18] Deep Learning - Tensorflow [18] Deep Learning - Tensorflow Tensorflow TensorFlow , 텐서플로우는 많은 계산을 빠르게 처리할 수 있는 파이썬 라이브러리다. 딥러닝이나 머신러닝의 과정 속에서 대규모 계산이 필요하다는 것을 생각해보면 , 텐서플로우가 딥러닝과 머신러닝에 왜 사용되는지 그 이유를 알 수 있다. 대규모 고속 계산이 가능한 텐서플로우를 통해 우리는 다양한 머신러닝 , 딥러닝 작업들을 수행할 수 있다. 텐서플로우의 특징은 다음과 같다. 분산 컴퓨팅 / GPU 지원 JIT (just-in-time) 컴파일러를 포함 플랫폼과 환경에 구애받지 않고 모델을 실행할 수 있다. 자동 미분 , RMSProp , Nadam 같은 Optimizer 등 딥러닝 / 머신러닝과 관련한 다양한 편의를 제공 .. 더보기
알고리즘 - Python / 백준 - 11441번 : 합 구하기 11441번: 합 구하기 (acmicpc.net) 11441번: 합 구하기 첫째 줄에 수의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄에는 A1, A2, ..., AN이 주어진다. (-1,000 ≤ Ai ≤ 1,000) 셋째 줄에는 구간의 개수 M이 주어진다. (1 ≤ M ≤ 100,000) 넷째 줄부터 M개의 줄에는 www.acmicpc.net 풀이 숫자를 입력받고 , 구간합을 구하는 문제다. 누적 합을 구현하는 기초적인 문제다. STACK 이라는 리스트를 통해 누적합을 저장하고 , 저장한 누적합을 통해 구간합을 출력하였다. import sys n = int(sys.stdin.readline()) c = list(map(int, sys.stdin.readline().split(" ").. 더보기
알고리즘 - Python / 백준 - 2960번 : 에라토스테네스의 체 2960번: 에라토스테네스의 체 (acmicpc.net) 2960번: 에라토스테네스의 체 2, 4, 6, 8, 10, 3, 9, 5, 7 순서대로 지워진다. 7번째 지워진 수는 9이다. www.acmicpc.net 풀이 에라토스네테스의 체를 구현하고 몇 번째에 어떤 수가 지워지는지 출력하는 문제다. 단순하게 에라토스테네스의 체를 구현하고 해당 순서의 수를 출력하였다. n,u=map(int , input().split(" ")) prime = [0 for i in range(n+1)] ans = [] for i in range(2,n+1): for k in range(i,n+1,i): if prime[k] == 0: prime[k] = 1 ans.append(k) if len(ans) >= u: break.. 더보기
반응형