[BOJ] 15단계 / Greedy Algorithms
·
Hi🖐️/Algorithm
1 11047 동전 0 동전의 조건이 특별해서 동적 프로그래밍보다 빠르게 답을 찾을 수 있는 문제 import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException{ BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer bd = new StringTokenizer(bfr.readLine()); int T = Integer.parseInt(bd.nextToken()); int money = Integer.parseInt(bd.nextT..
동적계획법(Dynamic Programming) / Memoization
·
Hi🖐️/Algorithm
-동적계획법 (dynamic programming) 복잡한 문제를 간단한 여러개의 문제로 나누어서 푸는 방법. 부분문제반복과 최적부분구조를 가지고있는 알고리즘을 일반적인 방법보다 더 적은 시간내에 풀 때 사용. 문제를 여러개의 하위 문제(subproblem)로 나누어 품. 이 하위문제들을 결합하여 최종적인 문제에 도달하는 것. 메모이제이션(memoization) 컴퓨터 프로그램이 동일한 계산을 반복할 때, 이전에 계산한 값은 메모리에 저장해서 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하는 기술. 동적 계획법의 핵심 기술. 처음 방문하는 재귀문제면 계산을 통해 얻은 값을 메모리에 저장, 이 후 재방문을 하면 계산하지 않고 저장 된 값 사용. ex) import java.util.Sc..
블록체인 개념
·
Hi🖐️/Blockchain
#블록체인이 뭐냐면 블록체인(Blockchain) = 데이터 분산 처리 기술. 네트워크에 참여하는 모든 사용자가 모든 거래 내역등의 데이터를 분산, 저장하는 기술. 블록체인에서의 'Block'은 개인과 개인의 거래(P2P)의 데이터가 기록되는 장부. 이 블록들이 형성되고 시간이 지나면서 순차적으로 연결된 사슬(Chain)의 구조를 가짐. 모든 사용자가 거래내역을 가지고 있어서 거래내역을 확인하려면 모든 사용자가 보유한 장부를 대조하고 확인해야함. > 공공 거래장부, 분산 거래장부 라고 불림. #기존 거래방식과의 다른점 - 기존 거래 방식 : 은행이 모든 거래내역을 가지고있는, 은행이 A와 B의 거래 내용을 증명해주는 중간 역할을 하는 방식. - 블록체인 : 거래 내역을 은행이 아니라 여러명에게 나눠서 저..
[BOJ] BackTracking /13단계
·
Hi🖐️/Algorithm
13 백트래킹 모든 경우를 탐색하는 백트래킹 알고리즘을 배워 봅시다. 1 15649 N과 M (1) 백트래킹 입문 문제 1 import java.util.Scanner; public class Main { public static int[] array; public static boolean[] visit; //방문했는지 확인. default = False public static void main(String[] args) { Scanner scan = new Scanner(System.in); int N = scan.nextInt(); int M = scan.nextInt(); array = new int[M]; visit = new boolean[N]; dfs(N, M, 0); } public st..
[GAN] 적대적 생성 신경망 <숫자생성AI> 제작
·
Artificial_Intelligence🤖/Computer Vision
숫자 생성 인공지능 원리 생성 신경망 중 GAN을 이용함. GAN (Generative Adversarial Network) 적대적 생성 신경망. 2개의 신경망으로 이루어져 있음. 판별자 신경망과 생성자 신경망. 생성자는 진짜같은 가짜를 생성함. 판별자는 진짜그림과 생성자가 만든 가짜 그림을 구별 가능. 두 신경망은 목표가 있음. 생성자 : 판별자가 자신이 만든 그림을 진짜처럼 생각할 정도의 그림을 그림. 판별자 : 생성자가 만든 그림을 진짜인지 가짜인지 전부 구별해야함. 이제 두 신경망은 서로 이기기 위해 학습을 시작함. 이렇게 두 개의 신경망을 사용하여 이러한 원리로 생성해 내는 기법이 GAN(적대적 생성 신경망)임. 개발 환경 세팅 from keras.models import Model, Seque..
Backtracking
·
Hi🖐️/Algorithm
백트래킹(=퇴각검색) , 일종의 트리 탐색 알고리즘.해를 찾아가는 중에 막히면 다시 이전으로 돌아가서 해를 찾아가는 기법으로, 최적화 문제와 결정 문제를 풀 때 사용. 더보기- 깊이우선탐색 (Depth First Search, DFS)- 너비우선탐색 (Breadth First Search, BFS) - 최선우선탐색 (Best First Search/Heuristic Search) 모든 경우의 수를 검색 > DFS.트리의 깊이가 무한대이면 BFS DFS는 가능한 모든 경로를 탐색함. 일일이 하나씩 체크해보면서 노가다하는 탐색임.백트래킹은 DFS 방식과 비슷한데, DFS처럼 해를 찾아가는 중에, 다음에 갈 경로로 하면 해가 절대 안나올것 같으면 그 경로는 가지않고 되돌아감.이렇게 조건을 설정해서 안가는 경로..
[백준] 12단계 문제 모음
·
Hi🖐️/Java
12 정렬 배열의 원소를 순서대로 나열하는 알고리즘 1 2750 수 정렬하기 시간 복잡도가 O(n²)인 정렬 알고리즘으로 풀 수 있습니다. 예를 들면 삽입 정렬, 거품 정렬 등이 있습니다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException{ BufferedReader bfr = new Buff..
[백준] 11단계 문제 모음
·
Hi🖐️/Java
11 브루트 포스 가장 간단한 알고리즘인, 모든 경우의 수를 검사하는 브루트 포스 알고리즘을 배워 봅시다. 1 2798 블랙잭 import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner(System.in); int T = scan.nextInt(); int Max = scan.nextInt(); int n[] = new int [T]; for(int i = 0; i
[RNN] 전염병(covid-19) 예측 인공지능 제작
·
Artificial_Intelligence🤖/Prediction
colab.research.google.com/drive/1925aJnKBtplTrvAv0TfYbdjumcEnAPON?usp=sharing Google Colaboratory colab.research.google.com 코랩으로 작성한 원문입니다. # 개발 시작 이전 며칠간의 확진자 수를 입력받아 다음 날의 확진자 수를 예측하는 방법. 3일 동안의 확진자 수 보고, 그 다음날 확진자 수가 어떻게 될지 학습함. ex) 1, 2, 3 일 차 확진자 -> 4일차 확진자 예측. 연속된 데이터의 형태에서 그 패턴을 찾아냄. 순환 신경망 방식 (RNN). (RNN = Recurrent Neural Network, 순환적 구조, 입출력을 시퀀스 단위로 처리.) from keras.models import Seque..
[백준] 10단계 문제 모음
·
Hi🖐️/Java
10단계. 재귀 재귀함수를 다뤄 봅시다. 1 10872 팩토리얼 재귀함수를 만들어서 제출해야한다. import java.util.Scanner; public class Main { static int factory = 1; public static int fac(int num) { if(num ==0) return factory; else{ factory *= num; return fac(num-1); } } public static void main(String[] args) { Scanner scan = new Scanner(System.in); int x = scan.nextInt(); fac(x); System.out.println(factory); } } 2 10870 피보나치 수 5 이 문제 ..
Liky
'분류 전체보기' 카테고리의 글 목록 (9 Page)