목록PROGRAMMING (318)
MY MEMO
#include #include #include #include #include #include using namespace std; #define MAKE_INDEX(num1,num2) num2 > person_count ? num1 = 1 : num1 = num2 ofstream fcout; vector person_card; int person_count; /* 이 문제의 관건은 1) 게임을 코드로 구현하는 것과 2) 처음 입력할때 같은 수가 들어오면 삭제해주고 시작한다는 것이다 아니면 탁구처럼 계속 돈다. -> 무한루프발생 */ int play_game() { int before_index = 1, present_index = 1, delete_index; while (1) { //b의 카드를 a..
DP를 이용하면 된다!! -> 동적 계획법 보통 동적계획법을 사용할 때에는 모든 경우의 수를 다 돌아야할 때이다. 동적 계획법을 사용시 시간을 줄이려면 cache를 이용하여 결과값을 저장하여 놓는 것이 좋다. 이미 돌았던 경우의 수라면 반복해서 경우의 수를 구할 필요없이, 바로 값을 return해주면 된다. 따라서 보통 이중배열을 사용하여 cache를 만들고 저장한다. 이 문제는 나에게 매우 어려웠던 문제이다. 각 숫자마다 가지고 있는 카드의 수도 제한되어 있고, 모든 경우의 수도 돌아야하기 때문이다. 무엇보다 무엇을 이중배열의 두개의 변수를 무엇으로 정해야할지 몰라서 많은 고민을 했다. http://yejin0730.tistory.com/ 이 친구의 도움을 받았다!!! 알고리즘이 복잡하기에 길게 설명해..
프로그램의 시작 시간과 끝시간을 준다. (시간&분으로 주지 않고 분으로 합쳐서 준다) 중간에 광고가 있을 수도 있고 없을 수도 있다. ("전 프로그램의 끝시간과 이후 프로그램의 시작시간이 똑같지 않아도 된다"는 의미이다.) 최대 끝시간은 1000분이다. (0 만약 시작시간이 이전에 끝났던 시간보다 앞선다면 스케쥴표에 넣을 수 없다. while (!time_list.empty()) { int start_time = time_list.top().second, end_time = time_list.top().first; //queue에 남아있는 끝나는 시간 스케쥴중 가장 빠른걸 가지고 나온다. time_list.pop(); if (before_end_time > start_time) continue; //만약..
DFS는 stack BFS는 Queue를 이용하여 구현한다. DFS에서 visit가 2번 이상된 노드가 있다면 그것은 cycle이 생겼다는 의미이다. #include #include #include #include using namespace std; stack storage; vector visit; vector graph; int graph_count; void dfs() { storage.push(1); while (!storage.empty()) { int index = storage.top(); visit[index]++; if (visit[index] >= 2) return; storage.pop(); for (int j = 0; j < graph[index].size(); j++) { if(..
import tensorflow as tf import matplotlib.pyplot as plt X = [1,2,3] Y = [1,2,3] W = tf.placeholder(tf.float32) hypothesis = X*W cost = tf.reduce_mean(tf.square(hypothesis-Y)) sess = tf.Session() sess.run(tf.global_variables_initializer()) W_val = [] cost_val = [] for i in range(-30,50): feed_W = i * 0.1 curr_cost,curr_W = sess.run([cost,W],feed_dict={W:feed_W}) W_val.append(curr_W) cost_val.appe..
일단 window 10에 python 3.6을 가지고 anaconda 최신버전으로 시작했다.하지만 ananconda 최신버전을 관리자 권한으로 실행시키지 않았고download할 때에도.. just me를 선택하여 설치하였다. import tensorflow as tf까지는 잘 돌아가 무리없이 실습을 할 수 있었다. 하지만 matplotlib 설치에서 오류가 났다.명령어를 입력하고 설치했는 데도 뜨는 오류로 몇번이나 anaconda를 다시깔았다. 관리자권한으로 깔았지만 failed to install(?) anaconda menu!! 알림이 계속 떠 (ananconda 설치시 자동으로 설치가 중단된적이 2번정도 있었는데 파일 이름이 길어 지우지도 못했다.파일이름을 줄이려면 뭘 해야하는데 진짜 너무 힘들어서..
import tensorflow as tf # X and Y data x_train = [1,2,3] y_train = [1,2,3] W = tf.Variable(tf.random_normal([1]),name = 'weight') # random_normal => 랜덤한 한개 [1]=> 1차원 array b = tf.Variable(tf.random_normal([1]),name = 'bias') # Our hypothesis XW+b hypothesis = x_train*W + b # cost/loss function cost = tf.reduce_mean(tf.square(hypothesis-y_train)) # Gradient Descent # Minimize optimizer = tf.train..
1. 어플리케이션 설계 및 개발 (알고리즘) [배점: 30점] ①의 순서도에 제시되어 있는 미완성 알고리즘을 분석하여, 가장 적합한 로직으로 연계되어 구현될 수 있도록 답안 선택시 유의하시오. ②배열의 크기가 7일 경우 배열의 요소는 1부터 7까지 구성되는 것으로 한다. 예를들어 A라는 배열의 크기가 7일 경우 A(7)로 표시하고, 배열의 요소는 A(1)부터 A(7)로 구현된다고 가정한다.③7행7열일 경우 예시 7*7인 A배열이 있다.1. Q=SMALL2. J = SMALL Large 13. i>Q //????4. Large = Large+1 5. Large = Large-1 A배열이 존재SMALL = 1, LARGE = 7 (즉 배열에 넣어야하는 값 처음부터 끝을 의미한다) 1. Q = SMALL //..
Lecture 9-1 : Neural Nets(NN) for XOR XOR연산은 초반에 많은 연구자들에게 절망감을 주었다. 하지만 여러가지 logic을 합치면 XOR을 풀수 있다. 위의 그림을 보자 3개의 식이 있고 2개의 식으로부터 나온 값으로 XOR을 구할 수 있다. x1 = 0 , x2 = 0인 값을 확인해보면 첫번째 식에서 -8이라는 값이 나온다.S(-8) 즉 sigmoid graph에서 -8의 값은 0이된다. (위의 값은 0,1의 결과값이 나오기 때문에 binary classification이고 sigmoid함수를 사용하는 것이 좋다.) 두번째 식에서 3이라는 값에서는S(3) = 1의 값이 나온다. 두 식에서 나온 값을 y1, y2라고 정의하면 세번재 식에서 -5라는 값이 나온다.S(-5) = ..
Lecture 7-2Application & Tips : Learning and test data sets 1. 얼마나 machine learning model이 잘 돌아가고 있는지 확인해보자 위와 같이 training set이 있으면 30%~70%의 데이터를 이용하여 training을 진행하고나머지 부분을 test set으로 만들어 정답을 비교한다.별표친 부분은 답이기 때문에 machine learning에 넣어서 학습시키면 안된다. validation의 값을 왜 둘까?=> 우리는 gradient descent algorithm에서 알파 값을 계속 수정하여 확인할 필요가 있었다.=> 혹은 data normalization에서 상수 값을 변경하면서 overfitting을 줄일 필요가 있었다. 위의 두 값..