본문 바로가기

전체 글412

Generative 모델 & Discriminative 모델 # Generative 모델 : P(Y|data X) 를 "도출 해내는" 모델. 클래스의 분포에 먼저 주목 후, 그걸 기반으로 분류에 주목 - 종류 : 지도/비지도 학습 기반1) 지도 학습 기반 : 레이블 정보 Y 가 반드시 있어야 함 ex) 선형 판별 분석 2) 비지도 학습 기반 : 레이블 정보 Y 가 없어도 됨 ex) 토픽 모델링, 가우시안 미스쳐 모델 - 가정이 많다 -> 도출하는데에 단계가 더 필요하다 # Discriminative 모델 : P(Y|data X) 를 "직접", "곧바로" 산출하는 모델 클래스의 분류를 처음부터 주목 - 가정이 적다 -> 곧바로 결과를 도출할 수 있다 2020. 4. 25.
6593 상범 빌딩 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102#include #include #include #include using namespace std; int level, row, col;int st_y, st_x, st_h;int end_y, end_x, end_h; int dh[6] = { 0,0,0,0,1 , -1};int dx[6] = { 1,-1,0,0,0 ,0};int dy[6] = { 0,0,.. 2020. 3. 12.
2875 대회 or 인턴 123456789101112131415161718192021222324252627#include int main() { int n, m, k; scanf("%d %d %d", &n, &m, &k); int a, b, c; if (n >= 2 * m) { a = m; b = n - 2 * m; } else { a = n / 2; b = m - a; } if (b >= k) printf("%d", a); else { int c = k - b; if (c % 3 == 0) printf("%d", a - c / 3); else printf("%d", a - (c / 3 + 1)); }}Colored by Color Scriptercs 그리디 문제라고 분류되어있긴 한데,이게 왜 그리디인지 모르겠다 처음부터 끝까지.. 2020. 3. 12.
9935 문자열 폭발 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869#include #include #include #include using namespace std; char arr[1000005] = { 0 };char bomb[40] = { 0 };stack stk; int main() { scanf("%s %s", &arr, &bomb); int len_arr = strlen(arr); int len_bomb = strlen(bomb); int idx = 0; for (int i = 0; i 2020. 3. 12.
암호화폐 보상 예상시간과 난이도 # 블록 체인의 보상 예상시간 - 채굴을 완료한 뒤에 언제쯤 보상을 받을 수 있을까? > 만약, 보상을 받을 수 있는 시기를 어림짐작할 수 없다면, 해당 암호화폐는 신뢰받을 수 없다. ex) 인터파크에 책을 주문했는데, 언제 배송이 완료될지 알려주지 않는다면 매일같이 오매불망 책을 기다리는 불편을 감수해야 한다 -> 이런 서점은 신뢰할 수 없다. 암호화폐도 같은 맥락 - 암호화폐들의 보상 예상시간 : 1) 대부분의 경우, 얼마의 시간 단위마다 화폐가 발행되는지 정해둔다 2) 이 시간을 알면, 평균적으로 뒤이어서 6개의 블록이 생성되면 채굴에 대한 보상이 주어진다는 것을 알기 때문에, 대략적인 보상 시간을 계산 가능하다.> 비트코인, 이더리움 등 암호화폐마다 발행 시간을 정해뒀다. # 난이도 - 난이도 조.. 2020. 3. 12.
암호화폐 마이닝 풀 # 마이닝 풀 - 개요 : 1) 시간이 지날수록 채굴 참여자가 많아짐 2) 이에 발행 시간을 유지하기 위해, 암호화폐의 해싱 난이도가 높아짐 3) 개인이 계산하기엔 버거운 문제들 등장 4) 집단 풀이의 필요성 대두 (집단 지성)>> 마이닝 풀!! 다같이 풀자! - 마이닝 풀 참여자들의 이익 분배 : - 의의 : 1) 만약에, 마이닝 풀의 특정 인원의 컴퓨팅 파워가 압도적이라서 계속 그 사람이 주도적으로 코인을 채굴한다고 하자 2) 근데 수익 분배는 1/N 하라고 하면 빡치지 않을까? >> 따라서, 마이닝 풀은 특정 기준을 가지고 이익의 분배를 다르게 해준다 - 기준 : 해싱 파워! - 개개인의 참여자들의 해싱 파워에 비례하게, 수익이 발생한다면 나눠 가진다.- 마치, 특정 아이돌 그룹의 수익 분배를 할때.. 2020. 3. 12.
화폐의 3대 조건 & 블록체인 트릴레마 # 화폐의 3대 조건 1) 충분히 가치가 있는가? - 물물교환에 사용 2) 충분한 수량이 있는가? - 대중이 사용할 수 있도록 3) 가치 손상이 어려우며 + 가치가 안정적인가? # 블록체인 트릴레마 - 개요 : 이더리움 창시자인 비탈릭 부테린이 제시한 트릴레마 - 종류 : 1) 확장성 : 사용자가 증가하더라도 유연하게 대응할 수 있는가? > 블록체인에서는, 참여자들이 많아지면서 거래량이 많아지더라도 빠른 속도로 처리가 가능한지의 여부를 의미 > 비트코인, 이더리움(1세대) 는 이 한계를 극복 못함 2) 탈 중앙화 : 중앙 집중되지 않고, 분산된 집단이 각자 소규모 단위로 자율적인 운영이 가능한가? > EOS 의 방식의 경우, 탈 중앙화를 만족시키지 못한다 3) 보안 : 권한이 없는 이용자가 블록체인에 접.. 2020. 3. 12.
타이타닉 프로젝트 (1) - 자료 분석 first, load the csv file from the kaggle+ Code+ MarkdownIn[1]:import pandas as pd​_train = pd.read_csv('../input/titanic/train.csv')_test = pd.read_csv('../input/titanic/test.csv')​train = _train.copy()test = _test.copy()+ Code+ Markdownto find out if there is NaN values in the Dataframe, I use df.isnull().sum() function+ Code+ MarkdownIn[2]:train.isnull().sum()Out[2]:PassengerId 0 Survived 0 Pc.. 2020. 3. 12.
Dataframe - Pandas 자료형 정리 # Series 자료형과의 관계 - Dataframe, Series 둘 다 Pandas 에만 존재하는 자료형 - Dataframe > Series> Dataframe 의 한 컬럼 == Series # 기본적인 정보 확인하기 1) df.shape ex) (891, 12) 2) df.index : 인덱스에 대한 개요를 반환한다 ex) RangeIndex(start=0, stop=891, step=1) 3) df.column : 컬럼 목록을 반환한다 ex) Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex']) # 특정 행(row) 선택하기 - 종류 : iloc, loc, ix 1) iloc .. 2020. 3. 11.
파이썬 데이터/자료형 # 파이썬 기본 "데이터" 타입 - 종류 : 1) str : 문자열 2) int : 정수 3) float : 실수 # 파이썬 기본 "자료형" - 종류 : 1) list (리스트) : - 표기 방식 : [ ] - 의의 : 1> 다양한 자료형을 하나로 묶을 수 있다ex) [1, 'ab', "abcd" ] 2> 중첩 사용이 가능하다 : 다차원 배열 생성 가능ex) [ [ 1, 2 ], [ 3, 4 ] ] : 2차원 배열 3> 삭제, 수정, 추가에 유리하다 -> 동적할당이 알아서 되는거랑 비슷. c++ 의 vector 라고 생각.ex) a=[ 1, 2 ], b=[3] -> c = a+b -> c=[ 1, 2, 3 ] 2) tuple (튜플) : - 표기 방식 : ( )- 의의 : 수정 불가능한 리스트 > 리스트.. 2020. 3. 11.
디피 헬만 보안 기법 - 대칭키 생성 알고리즘 # 디피헬만 암호화 기법 - 대칭키 생성 알고리즘 - 배경 : 1) 대칭키 알고리즘을 사용해서 암호 통신을 하고싶다 2) 그러기 위해선, 두 사람이 "같은" 비밀키를 소유할 수 있도록 이끌어야 한다 > 어떻게? 어떻게 같은 비밀키를 만들 수 있지? 3) 비밀키를 만들더라도, 한쪽에서 만든 비밀키를 네트워크 통신으로 다른 사람에게 전달하는 방식은 너무 위험하다! > 당연하지! 우리 집 열쇠를 우체국 택배로 부치는거랑 똑같다! > 중간에 어떤 사람이 너무나도 쉽게 가로챌 수 있다! 4) 그렇다면, 양쪽의 사람이 각각 "비밀스럽게", "똑같은" 대칭키를 만들 수 있는 방법을 고민해보자! - 매커니즘 : 1) 어떤 수 G 가 주어졌다고 하자 > 이때 G 값은 공개적으로 주어지는 값이다 (공개키) 2) 두 사람 .. 2020. 3. 9.
ECC 암호화 기법 - 공개키 생성 알고리즘 # ECC 암호화 기법 - 공개키 암호화 기법 - 배경 : 1) RSA 기법의 경우, 안정성은 어느정도 보장이 되지만, 개인키의 비트 수가 길어야 안정성이 보장된다> why? 어느정도 짧은 길이의 경우, 수학적으로 봤을때 해킹 가능성이 높았음> 이를 보완하기 위해선, 비트 수 자체를 늘리면 됐다 (자연스럽게 보안성이 증가함) 2) 그러나 시대가 변하면서, 휴대폰/컴퓨터 등 소형 기기에서도 보안성을 요구하게 됨 3) 이런 기기들에서 비트수를 무작정 늘릴 수 없음 (비트 수를 모두 감당하기 위해선 너무 무거워짐) - 전체적인 매커니즘 (동영상 참조 : https://www.youtube.com/watch?v=gAtBM06xwaw ) 1) 첫 시작지점인 A 와, 특정 시점에서의 결괏값 E 가 주어진다고 하자 .. 2020. 3. 9.