전체 글 168

[백준 13549번] 숨바꼭질 3(C++, priority_queue<pair>정렬)

처음엔 priority_queue의 pair.first 기준으로만 정렬하면 되는줄알구 -weight로 넣었는데, 뒤에꺼까지 정렬해야해서 struct cmp를 만들어서 정렬시켰는데, 최대힙을 기준으로 만들어져 있어서 그런가, 부등호 방향을 반대로 해야 제대로 둘다 오름차순으로 정렬되었다. C++풀이 #include using namespace std; bool visited[100001]; int N,K; //음.. 부등호가 왜 반대가 되야할까 // priority_queue가 기본적으로 최대힙으로 되어있어서 그런걸까 struct cmp{ bool operator()(pair& a, pair& b) { if(a.first == b.first) { return a.second > b.second; }else..

[백준 9663번] N-Queen(C++)

이런 경우도 마찬가지. 이런식으로 완전탐색으로 d를 하나씩 증가시키면서 row가 바뀌고, 이에따라 board의 상태가 바뀐다. 다음 depth에서 놓을 수 있는 위치에 Q를 위치시키고 보드의 상태를 바꾸며, 갈곳이 없으면 return 하고 위의경우세어 d==4가 되면 d==3위치에까지 Q가 자리했다는 의미이므로 count를 1증가시키고 종료한다. C++ 풀이 #include using namespace std; int board[16][16]; int cnt = 0; int N; void dfs(int d){ vector toClear; //종료조건, 보드크기가 0~N-1이니, N까지 들어가면 종료. if(d ==N){ cnt++; return; } for(int i = 0 ; i< N;i++) { //..

[PART5] 심층강화학습 DQN

DQN 두가지 버전 1. 아카이브(리뷰잉 과정들을 통해서 타당성 검증 없음) 2. 개선된 Nature버전. Alexnet 기존에 컴퓨터 비전보다 나은성능이라고 실험적으로 확인 DQN이 해결한(혹은 해결의 실마리를 제공한) 3가지 문제 Sensory인풋을 RL 에이전트에 적용하는 방법. DQN이전에는 난제였음. Moving Q-target : 기존의 table setup에서 학습을 하는것과는 달리 function approximation을 사용하게 되면 학습에 불안정성이 생기게 된다. DQN 한눈에 보기 sensory input에서 함수근사(여기선 CNN)를 통해 action을 아웃풋으로 내는 Q값을 학습했고, 추가적으로 Target network라는 트릭과 Experience replay라는 트릭을 사용..

사용하는 패키지 설치 or 사용법

설치하는 커맨드를 좀 남겨두고자한다. 일일이 검색하기 귀찮아서.. 1.LGBM conda install -c conda-forge lightgbm 2. pytorch pytorch.org/get-started/locally/ PyTorch An open source deep learning platform that provides a seamless path from research prototyping to production deployment. pytorch.org 여기 들어가서 본인 환경에 맞는거 쓰자. 일단 나는.. 아래껄로.. conda install pytorch torchvision torchaudio cudatoolkit=10.1 -c pytorch 3. pandas conda insta..

[백준 9251번] LCS(C++)

dp문제가 왜이렇게 많아.... 아이디어 각 string(A,B)에 맞는 dp배열을 생성하고 각 (i,j)칸은 A[i-1] , B[j-1] 까지의 string을 비교한 것이다. ex) dp[3][4] = ACA * CAPC 비교해서 만들어진 칸. 아 설명 못하겠당.. C++풀이 #include using namespace std; string A,B; int dp[1001][1001]; int main(void) { ios::sync_with_stdio(false); cin.tie(NULL); cin >> A >> B; int result = INT_MIN; for(int i = 1 ; i

[백준 11660번] 구간 합 구하기5(C++)

아이디어 ㅠㅠㅠㅠ.. 처음엔 완전탐색으로 풀었었고(시간초과), 두번쨰는 bfs로 각각 dp를 만들어서 풀었고(시간초과) 마지막으로 입력과 동시에 dp를 만들어버리면서 풀었다.아래 3개 코드 모두 올리겠습니다.1. 완전탐색2. bfs + dp3. dp 바쁘신분은 3번 풀이만 보면 되겠습니다. dp의 아이디어만 소개하겠습니다. 처음 dp는 빨간 동그라미까지의 합을 구하기 위해서는 세모(주황색), 네모(초록색)는 더하고 X(파란색)는 두번 더해졌기 때문에 빼준다. 구간합을 구할떄는 x2,y2까지의 합(주황색)에서 초록색과 파란색 영역을 빼주면 보라색 구간은 두번 빼졌기 때문에 다시 더해준다. 1. C++ 풀이 ( 완전탐색 ) #include using namespace std; struct x_y{ int x..

딥러닝 모델 Class의 Forward 함수가 궁금했다.

자꾸.. Pytorch로 모델링 된 딥러닝 모델을 보면 forward함수를 빼놓을 수 없는데, 위의 model = LinearRegressionModel()로 객체를 생성하고 model.blahblah()로 함수를 부르는게 아니라 model(input_data)이런식으로 부르길레 이게 뭐야 하면서 뇌정지가 왔던 적이 있다. 내부적으로 어떻게 돌아가는진 모르겠지만 생성된 model instance에 train_data를 입력하면 알아서 불리는 메소드라고 하니 이렇게만 일단 이해하고 넘어가자.